DNS Connection Question

trlists at clayst.com trlists at clayst.com
Wed Oct 20 12:03:01 EDT 2004


On 20 Oct 2004 dsr at tao.merseine.nu wrote:

> Virtually every nameserver will have authoritative records for
> "localhost" (although they may be "NXDOMAIN"). That should be a
> minimal 1 packet request, 1 packet response, no waiting.

I was thinking about what domain to use for the test and had decided to 
try localhost.  At first I thought of the nameserver's domain, but then 
realized the server can't be authoritative for its own domain or 
there's a loop (is this allowed?) -- though it would probably have its 
own domain in its cache.

Played around with dig a bit -- a query like this:

	dig @server localhost +time=1

seems to do what I want.  Returns an exit code of 9 if it can't reach 
the server, 0 if it can, which means I can ignore the output itself.

The time option seems to determine half the actual elapsed time, for 
example:

     $ time dig @blu.org localhost +time=2

     ; <<>> DiG 9.2.1 <<>> @www.microsoft.com localhost +time=2
     ;; global options:  printcmd
     ;; connection timed out; no servers could be reached

     real    0m4.030s
     user    0m0.000s
     sys     0m0.020s

+time=1 seems to do what I want, on the server on which the code will 
run.

For Bob G, the PHP functions (checkdnsrr() or, in PHP 5, 
dns_get_record()) won't work for this purpose as they do not allow you 
to specify the server, only the host to look up.  As a result I'd have 
to use the socket functions, so just invoking dig may be the best 
solution.

--
Tom






More information about the Discuss mailing list