Windows系统中两种抓取DNS数据包的方法

1.使用Microsoft Network Monitor 3.1

下载地址:

http://download.microsoft.com/download/1/8/f/18fd3dfa-ea78-4ed0-a62d-f5b043391ea4/NM31_Release_x86.msi

来源:http://support.microsoft.com/kb/933741/zh-cn

安装Microsoft Network Monitor 3.1之后,
启动Microsoft Network Monitor: 开始菜单–〉所有程序–〉Microsoft Network Monitor 3.1–>Microsoft Network Monitor 3.1.

然后点“Create a new capture tab”,(capture1如果有被关掉的子面板,可以通过主菜单–〉View –>Window –>选择需要重新显示的view)

在 “Capture Filter” 中点 文件夹图标,选择 “DNS”,再点“Apply”,使之生效。

(也可以默认抓取所有数据包,在 Display Filter中选择 只显示 DNS数据包 )
然后点工具条上的绿色三角,开始抓取数据包,或者直接按快捷键“F10”.

接下来到开始菜单–〉运行–>输入cmd,然后确定进命令行,输入nslookup,回车。

nslookup首先会发起一个针对当前DNS服务器的PTR查询。在Microsoft Network Monitor的Fame Summary视图中已经可以看到DNS数据包。

此时在nslookup的命令行下,输入 618119.com
可以得到类似如下的查询结果:
> 618119.com
Server: [202.96.128.86]
Address: 202.96.128.86

Non-authoritative answer:
Name: 618119.com
Address: 69.89.31.74

而Fame Summary中也可以看到发出的DNS查询数据包和DNS查询结果的应答。

在Fame Summary选种要查看的纪录,可以在 Frame Details 和 hex Details的视图里看到协议的字段解析和16进制数据。

2.使用Sniffer Pro

安装SnifferPro 4.70.530:先运行 SnifferPro_4_70_530.exe,再运行cn-SnifferPro4.70.530.EXE。

启动程序:开始菜单–〉所有程序–〉Sniffer Pro–>Sniffer.

选择要监听的网卡,确定。

主菜单–〉捕获–〉定义过滤器–〉选中“默认”,然后点“配置文件”–>点“新建”–〉输入名字为“dnstest”,然后点“好”,再点完成。

选中“dnstest”,切换到“地址”面板,地址类型选择“IP”,然后选中本机IP(地址簿没有纪录的话,可以手工添加或自动扫描)。

在位置1的的第一行写上本机ip,比如”192.168.18.2″,,点一下“位置2”的第一行,选择为“任意的”
切换到“高级”面板,找到“IP”节点,展开节点,找到TCP--> 选中DNS(TCP),找到UDP,选中DNS(UDP).

点击确定,已经配置好捕获数据包的过滤器.

主菜单–〉捕获–〉选择过滤器–〉选中“testdns”.点确定.

按快捷键 F10,开始捕获.

进入命令行,使用nslookup进行dns查询.

切换到 Sniffer Pro ,按F9停止捕获并显示.

在"专家"子窗口中,点左下角的"解码"面板.
在这里就可以看到dns数据包的解析信息 。

转自:http://blog.piaojy.com/?p=729