dig is a command-line tool used in network administration for querying the Domain Name System (DNS). It is valuable for troubleshooting and learning, operating via command options or batch files. If no name server is specified, dig uses the system's default resolver, typically set in resolv.conf, and without arguments, it queries the DNS root zone. Supporting Internationalized domain name queries, dig is part of the BIND suite. It surpasses older tools like nslookup and host, which remain in complementary use.
Example usage
Basic
In this example, dig is used to query for any type of record information in the domain example.com:
$ dig example.com any ; <<>> DiG 9.6.1 <<>> example.com any ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4016 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;example.com. IN ANY ;; ANSWER SECTION: example.com. 172719 IN NS a.iana-servers.net. example.com. 172719 IN NS b.iana-servers.net. example.com. 172719 IN A 208.77.188.166 example.com. 172719 IN SOA dns1.icann.org. hostmaster.icann.org. 2007051703 7200 3600 1209600 86400 ;; Query time: 1 msec ;; SERVER: ::1#53(::1) ;; WHEN: Wed Aug 12 11:40:43 2009 ;; MSG SIZE rcvd: 154The number 172719 in the above example is the time to live value, which indicates the time of validity of the data.
The any DNS query is a special meta query which is now deprecated. Since around 2019, most public DNS servers have stopped answering most DNS ANY queries usefully RFC8482 - Saying goodbye to ANY.
If ANY queries do not enumerate multiple records, the only option is to request each record type (e.g. A, CNAME, or MX) individually.
Specific DNS server
Queries may be directed to designated DNS servers for specific records; in this example, MX records:
$ dig wikimedia.org MX @ns0.wikimedia.org ; <<>> DiG 9.11.3 <<>> wikimedia.org MX @ns0.wikimedia.org ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39041 ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1024 ; COOKIE: c9735311d2d2fa6e3b334ab01b67960d (good) ;; QUESTION SECTION: ;wikimedia.org. IN MX ;; ANSWER SECTION: wikimedia.org. 3600 IN MX 10 mx1001.wikimedia.org. wikimedia.org. 3600 IN MX 50 mx2001.wikimedia.org. ;; Query time: 1 msec ;; SERVER: 208.80.154.238#53(208.80.154.238) ;; WHEN: Sat Sep 18 21:33:24 PDT 2021 ;; MSG SIZE rcvd: 108 </syntaxhighl ight> === With output formatting === There are many [https://downloads.isc.org/isc/bind9/cur/9.19/doc/arm/html/manpages.html#dig-dns-lookup-utility output formatting options] available. A common selection to make the output more terse is: <syntaxhighlight lang="zone" highlight="1" style="font-size:8pt;"> $ dig +noall +answer +multiline wikimedia.org MX wikimedia.org. 3600 IN MX 10 mx1001.wikimedia.org. wikimedia.org. 3600 IN MX 50 mx2001.wikimedia.org.Where +noall +answer +multiline are simply output formatting flags.
History
dig was originally written by Steve Hotz and incorporated into BIND 4 since at least 1990;2 later it was rewritten by Michael Sawyer, and is maintained by the Internet Systems Consortium as part of BIND 9.
When originally written, the manual page for dig indicated that its name was an acronym for "Domain Information Groper".3 This expansion was removed in 2017; the tool's name is now simply "dig".
See also
- BIND name server
- Root name server – top-level name servers providing top level domain name resolution
- List of DNS record types – possible types of records stored and queried within DNS
- whois
- host is a simple utility for performing Domain Name System lookups
- nslookup, another utility that can be used to obtain similar information
Bibliography
- Paul Albitz and Cricket Liu. DNS and BIND, 5th Edition. Nutshell Series. O'Reilly and Associates, Inc., 2006.
External links
- Official BIND 9 man page for dig
- How to use dig to query DNS name servers
- Dig source code in ISC Gitlab repository
References
"Dig Command in Linux (DNS Lookup)". linuxize.com. 2020-02-26. Retrieved 2024-03-07. https://linuxize.com/post/how-to-use-dig-command-to-query-dns-in-linux/ ↩
"dig (4.4BSD of 1990)". man.freebsd.org. Retrieved 2024-05-17. https://man.freebsd.org/cgi/man.cgi?query=dig&apropos=0&sektion=0&manpath=4.4BSD+Lite2&arch=default&format=html ↩
"dig (4.4BSD of 1990)". man.freebsd.org. Retrieved 2024-05-17. https://man.freebsd.org/cgi/man.cgi?query=dig&apropos=0&sektion=0&manpath=4.4BSD+Lite2&arch=default&format=html ↩