Wireshark网络抓包(二)——过滤器
一、捕获过滤器
选中捕获选项后,就会弹出下面这个框,在红色输入框中就可以编写过滤规则。
1)捕获单个IP地址
2)捕获IP地址范围
3)捕获广播或多播地址
4)捕获MAC地址
5)捕获所有端口号
6)捕获特定ICMP数据
当网络中出现性能或安全问题时,将会看到ICMP(互联网控制消息协议)。
在这种情况下,用户必须使用一个偏移量表示一个ICMP中字段的位置。
偏移量0表示ICMP字段类型,偏移量1表示ICMP位置代码字段。
二、显示过滤器
显示过滤器语法如下:
1)协议过滤器
2)应用过滤器
3)字段存在过滤器
字段名还有很多,可以在状态栏中找到对应的字段名:
4)特有过滤器
5)显示单个IP地址或主机
6)显示地址范围
7)显示一个子网IP
以CIDR(无类型域间选路)格式使用ip.addr字段名定义一个子网过滤器。
斜杠和数字分别定义IP地址的网络部分和掩码位数。
子网掩码通过与IP地址做与操作,从而分离出 IP 地址中的网络部分与主机部分。
8)过滤单一TCP/UDP会话
tcp.stream eq 会话序号,在传输层数据中可以看到会话序号。
9)使用关键字
1. frame contains "string"搜索,在帧中搜索一个关键字
2. 字段名搜索,例如前面提到的http.request.method contains "get"
3. 搜索关键字时不区分大小写,上面那个搜索将搜不出结果,因为字段内容其实是“GET”大写的,修改http.request.method matches "(?i)(get)"
4. 搜索多个关键字,http.request.method matches "(?i)(get|post)"
5. 使用通配符,也就是正则表达式
10)时间过滤器
在物理层数据帧中有三个时间:
1. 距离上一个捕获的包的时间间隔
2. 从上次显示的包开始计时,距离上一个显示的包的时间间隔
3. 距离第一个捕获包的时间间隔,默认第一个数据帧的时间为0.000000
frame.time_delta 过滤的是第一种时间
在Packet List面板中默认加了Time列,表示的是第三种时间。
11)基于TCP的时间过滤
tcp.time_delta的计算与上一个类似,只是字段包含在TCP头部,如果要查看必须启用Calculate conversation timestamps选项。
选择Edit | Preference | Protocols | TCP:
在传输层数据段中多了两个表示时间的字段:
tcp.time_delta过滤的是第二种时间。
参考资料:
Wireshark网络分析的艺术
Wireshark数据包分析实战详解
wireshark中的时间格式