为什么主机比挖掘一些查询慢得多?

查询特定地址时,针对/etc/resolv.conf中列出的parsing器进行掘,将很快返回到NXDOMAIN,并很快在主机需要一段时间。

$ dig @<resolver> 140.80.199.91.in-addr.arpa ptr ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @<resolver>140.80.199.91.in-addr.arpa ptr ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40000 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;140.80.199.91.in-addr.arpa. IN PTR ;; Query time: 1 msec ;; SERVER: <resolver>#53(<resolver>) ;; WHEN: Wed Oct 22 16:08:38 2014 ;; MSG SIZE rcvd: 44 

但在主机上慢得多…

 $ time host 140.80.199.91 <resolver> ;; connection timed out; no servers could be reached real 0m12.007s user 0m0.001s sys 0m0.007s 

为什么主持人花了这么长时间来拿出相同的答案?

你的两个命令是不相同的。

 host 140.80.199.91 

相当于:

 dig 91.199.80.140.in-addr.arpa ptr 

PTRlogging中的标签是反向IP地址的元素。

由于您正在查找不同IP的反向DNS,因此他们正尝试访问不同的DNS服务器。 所以时机自然会有所不同。 而在你的例子中, 199.80.140.in-addr.arpa的反向DNS服务器没有响应,所以你得到一个超时。

为了避免必须手动反转IP,可以使用-x选项作为快捷方式:

 dig -x 140.80.199.91 

这个选项也默认为PTR查找,所以你可以省略这个参数。