WireShark抓包命令
本机环回包
在进行通信开发的过程中,我们往往会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信。但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以。 具体方法如下:
①:以管理员身份运行cmd
②:route add 本机ip mask 255.255.255.255 网关ip
例如: route add 172.16.51.115 mask 255.255.255.255 172.16.1.1 metric 1
使用完毕后用 route delete 172.16.51.115 mask 255.255.255.255 172.16.1.1 metric 1 删除,否则所有本机报文都经过网卡出去走一圈回来很耗性能
此时再利用wireshark进行抓包便可以抓到本机自己同自己的通信包,这样配置的原因是将发往本机的包发送到网关,而此时wireshark可以捕获到网卡驱动的报文实现抓包。
WireShark语法
- 基本语法:
等于:==
小于:<
并且:&&
或者:|| - 过滤来源IP或者目标IP:
ip.src == 192.168.1.107 ;
ip.dst == 192.168.1.107;
ip.addr == 192.168.1.107; - 过滤端口:
tcp.port == 80; udp.port == 80; tcp.dstport == 80; // 只显tcp协议的目标端口80 tcp.srcport == 80; // 只显tcp协议的来源端口80
- 过滤MAC:
eth.dst == A0:00:00:04:C5:84; eth.src == A0-00-00-04-C5-84;
- 包长度过滤:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后 frame.len == 119 整个数据包长度,从以太网开始到最后 - HTTP过滤:
http 只显示http报文
ssl 只显示ssl加密报文(https)
http.request.method == "GET" http.request.method == "POST" http.request.full_uri==” http://task.browser.360.cn/online/setpoint” http.request.uri == "/online/setpoint" http.content_type == "text/html" http.response.code==302