dig (dns information groper)

查询单个主机的信息

$ dig foo.bar.com

结果中的Anwser Section就是该主机的信息,例如IP地址 一下是dig www.qq.com的结果

$ dig www.qq.com

; «» DiG 9.8.3-P1 «» www.qq.com

;; global options: +cmd

;; Got answer:

;; -»HEADER«- opcode: QUERY, status: NOERROR, id: 21106

;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:

;www.qq.com. IN A

;; ANSWER SECTION:

www.qq.com. 300 IN CNAME https.qq.com.

https.qq.com. 300 IN A 61.129.7.47

;; Query time: 11 msec

;; SERVER: 192.168.1.1#53(192.168.1.1)

;; WHEN: Sun May 19 22:47:08 2019

;; MSG SIZE rcvd: 64

可以看出来www.qq.com是一个CNAME。它实际上指向了https.qq.com.这个域,而它的ip是61.129.7.47。你 可以试着在浏览器中输入https://61.129.7.47/看看是什么结果。

查询主机的CNAME

$ dig www.sina.com CNAME

得到的结果片段如下

;; QUESTION SECTION:

;www.sina.com. IN CNAME

;; ANSWER SECTION:

www.sina.com. 300 IN CNAME us.sina.com.cn.

从指定的服务器查询DNS信息

上面的查询都没有指定特定的DNS服务器,有时候本地的DNS服务器可能不是很准确,这样我们需要去查询权威一点的服务器,例如谷歌,godaddy或国内的dnspod。

$ dig @target-dns.com foo.bar.com

命令中在@的后面加上DNS服务器的地址即可。

反向查询某个DNS服务器

$ dig -x 8.8.8.8

; «» DiG 9.8.3-P1 «» -x 8.8.8.8 ;; global options: +cmd ;; Got answer: ;; -»HEADER«- opcode: QUERY, status: NOERROR, id: 53894 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:

;8.8.8.8.in-addr.arpa. IN PTR

;; ANSWER SECTION:

8.8.8.8.in-addr.arpa. 1044 IN PTR google-public-dns-a.google.com.

【参考】学习过程中参考了man page - dig 以及部分例如https://www.imooc.com/article/26971?block_id=tuijian_wz