dig Command in Linux with Examples

28 Apr, 2022
dig command stands for Domain Information Groper. It is used for retrieving information about DNS name servers. It is basically used by network administrators. It is used for verifying and troubleshooting DNS problems and to perform DNS lookups. Dig command replaces older tools such as nslookup and the host.
In case of Debian/Ubuntu
$sudo apt-get install dnsutils
In case of CentOS/RedHat
$sudo yum install bind-utils
Syntax:
dig [server] [name] [type]
1. To query domain “A” record
dig geeksforgeeks.org
 This command causes dig to look up the “A” record for the domain name “geeksforgeeks.org”.
A record refers to IPV4 IP. Similarly, if record type is set as “AAAA”, this would return IPV6 IP.  
2. To query domain “A” record with +short
dig geeksforgeeks.org +short
 By default dig is verbose and by using “+short” option we can reduce the output drastically as shown. 3. To remove comment lines.
dig geeksforgeeks.org +nocomments
 This command makes a request and excludes the comment lines. 4. To set or clear all display flags.
dig geeksforgeeks.org +noall
 We use the “noall” query option, when we want to set or clear all display flags. 5. To query detailed answers.
dig geeksforgeeks.org +noall +answer
 If we want to view the answers section information in detail, we first stop the display of all section using “+noall” option and then query the answers section only by using “+answer” option with the dig command. 6. To query all DNS record types.
dig geeksforgeeks.org ANY
 We use “ANY” option to query all the available DNS record types associated with a domain. It will include all the available record types in the output. 7. To query MX record for the domain.
dig geeksforgeeks.org MX
 If we want only the mail exchange – MX – answer section associated with a domain we use this command. 8. To trace DNS path
dig geeksforgeeks.org +trace
 “+trace” command is used for tracing the DNS lookup path. This option makes iterative queries to resolve the name lookup. It will query the name servers starting from the root and subsequently traverses down the namespace tree using iterative queries following referrals along the way. 9. For specifying name servers
dig geeksforgeeks.org @8.8.8.8
 By default, dig command will query the name servers listed in “/etc/resolv.conf” to perform a DNS lookup. We can change it by using @ symbol followed by a hostname or IP address of the name server. 10. To query the statistics section
dig geeksforgeeks.org +noall +answer +stats
 We use “+stats” option with dig command, to see the statistics section.
Reverse DNS Lookup:
Reverse DNS lookup can be used to fetch domain name or the host name from the IP address.“-x” option is used to perform reverse DNS lookup.
ex: 
[xxxxxx ~]# dig +noall +answer -x 8.8.8.88.8.8.8.in-addr.arpa. 18208 IN PTR dns.google.
Note: DNS reverse look up will work only if the entry is present PTR. PTR contents can be viewed using the command “dig -x xx.yy.zz.aa” 
Batch Queries:
Instead performing dig query for each domain at a time, a list of domains can be queried at once. 
To do so, enter the domain names in a file, only 1 domain name in each line and perform the dig query on file. ex: let’s say, file.txt has the list of domain names to be queried then, 
dig -f file.txt +shortwill perform DNS queries and return all the resolved IPs.
 
rahulmittalal
linux-command
Linux-networking-commands
Linux-Unix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
scp command in Linux with Examples
Docker - COPY Instruction
chown command in Linux with Examples
SED command in Linux | Set 2
nohup Command in Linux with Examples
chmod command in Linux with examples
Array Basics in Shell Scripting | Set 1
mv command in Linux with examples
Introduction to Linux Operating System
Basic Operators in Shell Scripting