有些时候,我们希望抓取自己的网络数据包以进行各种分析,那么怎么做呢?
首先,上网下载一个叫做“WireShark”的软件并安装上,记得要勾选安装“WinPcap”一项。
然后,打开这个软件(必须是管理员身份),单击左侧的“Capture Options”,然后在弹出的对话框的右上侧选择你要抓包的网卡,并取消左上侧的“Capture Packets in promiscuous mode”的勾选,再单击“start”即可开始抓包。
这个方法对任何网卡都适用,如果不取消那个promiscuous的勾选,则可能会抓到其他机子的数据包,这会干扰我们的工作,并且多数网卡并不支持那么做。
注意:开抓时必须保证你的网卡有有效网络地址(即连上Internet或路由)。
例子:
几个简单的过滤器例子:
“ip.dst==211.244.254.1” (所有目标地址是211.244.254.1的ip包)
“tcp.port==80″ (所有tcp端口是80的包)
你可以把上述表达式用 and 连接起来
“(ip.dst==211.244.254.1) and (tcp.port==80)”
或者再稍加变换
“(ip.dst==211.244.254.1) and !(tcp.port==80)” (所有目的ip是211.244.254.1非 80 端口)
使用表达式设置过滤器比之在界面上选择/填空更加快捷灵活,如果你不熟悉这些表达式,Wireshark 也提供了设置界面,并且最终生成表达式,这样也方便了使用者学习。
Wireshark 还提供了更高级的表达式特性,请看如下表达式
(tcp.port==80) and (ip.dst==211.244.254.1) and (http[5:2]==7075)
对象 http 就是 wireshark 解码以后的 http 数据部分 http[5:2] 就是指从 下标 5 开始的两个字节,请思考一下这样的http 请求