nslookup是多数win系统中的一个内置命令,主要目的是用来测试域名解析,属于命令行工具,顺利工作的前提是已正常安装了Tcp/Ip协议簇。


   打开CMD的命令行界面,在不填写任何参数的情况下使用此命令,如下图:




如上图,输入nslookup后,返回了当前的DNS服务器的名称以及对应的IP,其实,这一步骤的根本原理是对202.96.134.133这个IP的反向查询。如下图:




上图为与该操作同步产生的数据抓包图,实质是反向查询DNS的服务器名称。


当在nslookup后面加上名称或IP时,系统依然会执行一次反解,也就是重复上述过程,然后再对后面的内容进行解析。比如输入nslookup ns.szptt.net.cn ,如下图:




为了便于分析,我把结果图和协议分析过程两者结合起来进行分析,大家可以清楚的看到,nslookup在解析字符串(也可能是域名)的整个过程。


如上所述,如果我们设置一个主机的DNS后缀,如下图:




大家可以看到,.domain被替换成11.com,即设定的主机DNS后缀。


我们也利用nslookup命令解析IP对应的主机或域名名称。如下图:




除此之外,还可以有其他的命令方式,如下图:




或者是




但要注意的是,在查询cname记录的时,后面需要一个完整的地址,而不是域名。


除此之外,还可以使用其他方式查询A记录或者其他域名记录。如下图:




当需要查询一个域名的TTL值时,我们就需要用到 -d  这个参数了,如下图:




上面所有的解析记录都来自默认的DNS服务器,即ns.szptt.net.cn上的 非权威回复,关于何为非权威回复,在以前的章节中有描述,此处不多说。其实我们可以修改当前的响应服务器,也就是说可以利用nslookup的server命令来选定一个NS服务器来负责解析我们的请求,最近google公布了一组免费的DNS服务器,即8.8.8.8和8.8.4.4,


我们就用第一个来测试一下,如下图:




第二个DNS测试结果雷同,只是server变成了google-public-dns-b.google.com而已。


 


这里只列举了一些比较常用的命令和查询方法,大家可以在nslookup的>提示符下输入?来查看更多的用法。