dig 101

2015-02-03 · 2 min read

dig is a command-line tool for querying DNS name servers for information about host addresses, mail exchanges, name servers, and related information. dig is usually part of a common package: bind-tools (Gentoo), bind-utils (Red Hat, Fedora) or dnsutils (Debian).

dig google.com

By default dig output is quite verbose. Version number along with global options.

; <<>> DiG 9.8.3-P1 <<>> google.com
;; global options: +cmd

Technical details about the answer from DNS server. This section can be turned on/off using +[no]comments.

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63174
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

Query itself repeated. This section can be turned on/off using +[no]question.

;google.com.			IN	A

Answer from a DNS server. It can be also turned on/off using +[no]answer.

google.com.		145	IN	A

Statistics about the query. It can be turned on/off using +[no]stats

;; Query time: 42 msec
;; WHEN: Mon Feb 16 18:31:25 2015
;; MSG SIZE  rcvd: 44


A address with concise output

dig google.com A +noall +noversion +answer
; <<>> DiG 9.8.3-P1 <<>> google.com A +noall +answer
;; global options: +cmd
google.com.		156	IN	A

List Google's mail servers

dig +nocmd google.com MX +noall +answer
google.com.		461	IN	MX	20 alt1.aspmx.l.google.com.
google.com.		461	IN	MX	30 alt2.aspmx.l.google.com.
google.com.		461	IN	MX	10 aspmx.l.google.com.
google.com.		461	IN	MX	50 alt4.aspmx.l.google.com.
google.com.		461	IN	MX	40 alt3.aspmx.l.google.com.

List of Google's DNS servers

dig +nocmd google.com NS +noall +answer
google.com.		139783	IN	NS	ns2.google.com.
google.com.		139783	IN	NS	ns3.google.com.
google.com.		139783	IN	NS	ns4.google.com.
google.com.		139783	IN	NS	ns1.google.com.

Combine A, MX and NS entries

dig +nocmd google.com ANY +noall +answer

Get only value for a specific server type

dig google.com A +short
dig google.com MX +short
40 alt3.aspmx.l.google.com.
30 alt2.aspmx.l.google.com.
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
20 alt1.aspmx.l.google.com.
dig google.com txt +short
"v=spf1 include:_spf.google.com ip4: ip4: ~all"

Reverse lookup

dig -x +short

Bulk lookups

Put hostnames in a file (one name per line) and use the -f option so dig queries each one in turn.

dig -f /path/to/hostnames.txt

Dig with trace

dig google.com +trace