Wireshark使用libpcap过滤语句进行捕捉过滤(what about winpcap?)。在tcpdump主页有介绍,但这些只是过于晦涩难懂,所以这里做小幅度讲解。
提示 |
|
你可以从http://wiki.wireshark.org/CaptureFilters找到捕捉过滤范例. |
在Wireshark捕捉选项对话(见图 4.2 “"Capture Option/捕捉选项"对话框”)框输入捕捉过滤字段。下面的语句有点类似于tcpdump捕捉过滤语言。在tcpdump主页http://www.tcpdump.org/tcpdump_man.html可以看到tcpdump表达式选项介绍。
捕捉过滤的形式为:和取值(and/or)进行进行基本单元连接,加上可选的,高有限级的not:
[not] primitive [and|or [not] primitive ...]
- 例 4.1. 捕捉来自特定主机的telnet协议
- tcp port 23 and host 10.0.0.5
本例捕捉来自或指向主机10.0.0.5的Telnet 通信,展示了如何用and连接两个基本单元。另外一个例子例 4.2 “捕捉所有不是来自10.0.0.5的telnet 通信”展示如何捕捉所有不是来自10.0.0.5的telnet 通信。
- 例 4.2. 捕捉所有不是来自10.0.0.5的telnet 通信
- tcp host 23 and not src host 10.0.0.5
一个基本单元通常是下面中的一个
[src|dst] host
此基本单元允许你过滤主机ip地址或名称。你可以优先指定src|dst关键词来指定你关注的是源地址还是目标地址。如果未指定,则指定的地址出现在源地址或目标地址中的包会被抓取。
ether [src|dst] host
此单元允许你过滤主机以太网地址。你可以优先指定关键词src|dst在关键词ether和host之间,来确定你关注的是源地址还是目标地址。如果未指定,同上。
gateway host
过滤通过指定host作为网关的包。这就是指那些以太网源地址或目标地址是host,但源ip地址和目标ip地址都不是host的包
[src|dst] net [{mask}|{len }]
通过网络号进行过滤。你可以选择优先指定src|dst来确定你感兴趣的是源网络还是目标网络。如果两个都没指定。指定网络出现在源还是目标网络的都会被选择。另外,你可以选择子网掩码或者CIDR(无类别域形式)。
[tcp|udp] [src|dst] port
过滤tcp,udp及端口号。可以使用src|dst和tcp|udp关键词来确定来自源还是目标,tcp协议还是udp协议。tcp|udp必须出现在src|dst之前。
less|greater
选择长度符合要求的包。(大于等于或小于等于)
ip|ether proto
选择有指定的协议在以太网层或是ip层的包
ether|ip broadcast|multicast
选择以太网/ip层的广播或多播
relop
创建一个复杂过滤表达式,来选择包的字节或字节范围符合要求的包。请参考http://www.tcpdump.org/tcpdump_man.html