dnsquery(1Mtcp)


dnsquery -- query domain name servers using resolver

Synopsis

dnsquery [-n nameserver] [-t type] [-c class] [-r retry] [-p retry_period] [-d] [-s] [-v] host

Description

The dnsquery program is a general interface to nameservers via BIND resolver library calls. The program supports queries to the nameserver with an opcode of QUERY. This program is intended to replace or supplement programs like nslookup(1Mtcp). All arguments except for host and nameserver are treated without case-sensitivity.

The options are as follows:

-n nameserver
The nameserver to be used in the query. Nameservers can appear either as Internet addresses of the form w.x.y.z or as domain names. The default is specified in /etc/resolv.conf.

-t type
The type of resource record of interest. Types include:

A
address

NS
nameserver

CNAME
canonical name

PTR
domain name pointer

SOA
start of authority

WKS
well-known service

HINFO
host information

MINFO
mailbox information

MX
mail exchange

RP
responsible person

MG
mail group member

AFSDB
DCE or AFS server

ANY
wildcard
Note that any case may be used. The default is ANY.

-c class
The class of resource records of interest. Classes include:

IN
Internet

HS
Hesiod

CHAOS
Chaos

ANY
wildcard
Note that any case may be used. The default is IN.

-r retry
The number of times to retry if the nameserver is not responding. The default is 4.

-p retry_period
The period to wait before timing out. The default is RES_TIMEOUT.

-d
Turn on debugging. This sets the RES_DEBUG bit of the resolver's ``options'' field. The default is no debugging.

-s
Use a stream rather than a packet. This uses a TCP stream connection with the nameserver rather than a UDP datagram. This sets the RES_USEVC bit of the resolver's ``options'' field. The default is to use UDP.

-v
Synonym for -s.

host
The name of the host (or domain) of interest.
Queries of a class other than IN can have unpredicable results since ordinarily a nameserver only has a list of root nameservers for class IN resource records.

Query uses a call to inet_addr(3N) to determine if the argument for the -n option is a valid Internet address. Unfortunately, inet_addr seems to cause a segmentation fault with some (bad) addresses (for example, 1.2.3.4.5).

Files

/etc/resolv.conf
to get the default nameserver and search lists

arpa/nameser.h
list of usable RR types and classes

resolv.h
list of resolver flags

Diagnostics

If the resolver fails to answer the query and debugging has not been turned on, dnsquery will simply print a message similar to:
   Query failed (rc = 1) : Unknown host 
The value of the return code is supplied by h_errno.

References

nslookup(1Mtcp) named(1Mtcp) resolver(3N)
30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.