Wireshark有两种用途的过滤器,分别是捕捉过滤器和显示过滤器。
使用捕捉过滤器时,只会捕捉相关的数据,其他数据不予抓取;使用显示过滤器时,会捕捉所有的数据,但只呈现相关内容的数据。
实际上,不同版本的语法规则稍有不同,可以在使用时配合关键字提醒来自定义规则。
捕捉过滤器
基本语法:Protocol Direction Host(s) Value Logical Operations Other expression
[示例]
tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128
【Protocol(协议)】
可选值: ether、fddi、ip、arp、rarp、decnet、lat、sca、moprc、mopdl、tcp and udp。
如果没有特别指明是什么协议,则默认使用所有支持的协议。
【Direction(方向】
可选值: src、dst、src and dst、src or dst。
如果没有特别指明来源或目的地,则默认使用“src or dst”作为关键字。
[示例]
“host 10.2.2.2”与“src or dst host 10.2.2.2”是一样的。
【Host(s)】
可选值: net、port、host、portrange。
如果没有指定此值,则默认使用“host”关键字。
[示例]
“src 10.1.1.1”与“src host 10.1.1.1”效果相同。
【Logical Operations(逻辑运算)】
可选值: not、and、or。
“not”具有最高的优先级,“or”与“and”具有相同的优先级,运算时从左至右进行。
[示例]
“not tcp port 3128 and tcp port 23”与“(not tcp port 3128) and tcp port 23”效果相同。
“not tcp port 3128 and tcp port 23”与“not (tcp port 3128 and tcp port 23)”效果不同。
[示例]
tcp dst port 3128
//显示目的 TCP 端口为 3128 的封包。
ip src host 10.1.1.1
//显示来源 IP 地址为 10.1.1.1 的封包。
host 10.1.2.3
//显示目的或来源IP地址为 10.1.2.3 的封包。
src portrange 2000-2500
//显示来源为UDP或TCP,并且端口号在 2000 至 2500 范围内的封包。
not imcp
//显示除了icmp以外的所有封包。( icmp 通常被 ping 工具使用)
src host 10.7.2.12 and not dst net 10.200.0.0/16
//显示来源 IP 地址为 10.7.2.12,但目的地不是 10.200.0.0/16 的封包。
(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
//显示来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络10.0.0.0/8内的所有封包。
src net 192.168.0.0/24
src net 192.168.0.0 mask 255.255.255.0
//显示来源IP地址为10.1.1.1的封包。
【注意事项】
1. 当使用关键字作为值时,需使用反斜杠“\”。
“ether proto \ip”(与关键字“ip”相同),这样写将会以IP协议作为目标。
“ip proto \icmp” (与关键字“icmp”相同),这样写将会以ping工具常用的icmp作为目标。
可以在“ip”或“ether”后面使用“multicast”及“broadcast”关键字,当您想排除广播请求时,“no broadcast”就会非常有用。
2. 您可以使用大量位于OSI模型第2至7层的协议。点击“Expression(表达)”按钮后,您可以看到它们。
3. 点击相关父类旁的“+”号,然后选择其子类。
4. 可以使用 6 种比较运算符:
英文写法 C语言写法 含义
eq == 等于
ne != 不等于
gt > 大于
gt < 小于
ge >= 大于等于
le <= 小于等于
5. Logical expressions(逻辑运算符)
英文写法 C语言写法 含义
and && 逻辑与
or || 逻辑或
xor ^^ 逻辑异或
not ! 逻辑非
显示过滤器
基本语法:Protocol . String 1 . String 2 Comparison operator Value Logical Operations Other
expression
[示例]
ftp passive ip == 10.2.3.4 xor icmp.type
[示例]
snmp || dns || icmp
//显示SNMP或DNS或ICMP封包。
ip.addr == 10.1.1.1
//显示来源或目的IP地址为 10.1.1.1 的封包。
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
//显示来源不为10.1.2.3或者目的不为10.4.5.6的封包。
ip.src != 10.1.2.3 and ip.dst != 10.4.5.6
//显示来源不为10.1.2.3并且目的IP不为10.4.5.6的封包。
tcp.port == 25
//显示来源或目的TCP端口号为25的封包。
tcp.dstport == 25
//显示目的TCP端口号为25的封包。
tcp.flags
//显示包含TCP标志的封包。
tcp.flags.syn == 0×02