dig or Domain Information Groper is a flexible tool for interrogating DNS servers. It performs DNS lookups and displays the answers returned from the name server(s) being queried. Most DNS administrators use dig to troubleshoot DNS problems because of its flexibility, ease of use, and clarity of output. Other lookup tools tend to have less functionality than dig.

Although dig is normally used with command-line arguments, it also has a batch mode of operation for reading lookup requests from a file. A summary of its command-line arguments and options is printed when the -h option is given. Unlike earlier versions, the BIND 9 implementation of dig allows multiple lookups to be issued from the command line.

Unless it is told to query a specific name server, dig will try each of the servers listed in /etc/resolv.conf.

When no command line arguments or options are given, dig will perform an NS query for “.” (the root).

It is possible to set per-user defaults for dig via ${HOME}/.digrc. This file is read, and any options in it are applied before the command line arguments.

The IN and CH class names overlap with the IN and CH top-level domains names. Either use the -t and -c options to specify the type and class, use the -q the specify the domain name, or use “IN.” and “CH.” when looking up these top-level domains.

Example use

Basic

$ dig google.com  ; <<>> DiG 9.7.0-P1 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52035 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0  ;; QUESTION SECTION: ;google.com.                    IN      A  ;; ANSWER SECTION: google.com.             89      IN      A       64.233.181.104  ;; Query time: 26 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Mon Jul  5 13:00:32 2010 ;; MSG SIZE  rcvd: 44

Mail

$ dig -t mx google.com  ; <<>> DiG 9.7.0-P1 <<>> -t mx google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63606 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0  ;; QUESTION SECTION: ;google.com.                    IN      MX  ;; ANSWER SECTION: google.com.             900     IN      MX      200 google.com.s9a2.psmtp.com. google.com.             900     IN      MX      100 google.com.s9a1.psmtp.com. google.com.             900     IN      MX      300 google.com.s9b1.psmtp.com. google.com.             900     IN      MX      400 google.com.s9b2.psmtp.com.  ;; Query time: 18 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Mon Jul  5 13:00:40 2010 ;; MSG SIZE  rcvd: 162