Reverse Look-Up IP Addresses with dig(1)
Normally, dig(1) is used to look up hosts by name, that is, find the IP address that corresponds to the hostname. This is called a forward lookup. A reverse lookup, instead, starts with the IP address and seeks to find the hostname that belongs to it.
To reverse-look-up IP addresses you use dig(1) with
the -x
command-line switch:
dig -x address
In the following example, we will also use the
+noall
,
+question
, and
+answer
command-line arguments to limit dig(1)’s reply to
just the items we are interested in. The +noall
tells dig(1) to
print nothing. The +question
and +answer
tell dig(1) to print only the
question and answer sections:
% dig +noall +question +answer -x 192.0.34.166
;166.34.0.192.in-addr.arpa. IN PTR
166.34.0.192.in-addr.arpa. 20341 IN PTR www.example.com.
Note that because -x
specifies an IP address, the IP
address must immediately follow it. Here, dig(1) produced just
two lines of output. The first line (a comment line)
is the original question that was asked. That line
is followed by the answer line.
You might reasonably ask, however, where did the
in-addr.arpa
come from? In the halcyon days of yore, there was no
dig(1) program; hence, there was no easy way to look
up a host by its address. In order to look up the
address, you first had to reverse it (hence, a
reverse lookup) and then to append an in-addr.arpa
to the
result:
192.0.34.166 reverses to 166.34.0.192.in-addr.arpa
Internally, dig(1) performs this task for you, thus causing ...
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.