【发布时间】:2011-05-01 21:36:18
【问题描述】:
我试过dst==192.168.1.101,但只得到:
Neither "dst" nor "192.168.1.101" are field or protocol names.
The following display filter isn't a valid display filter:
dst==192.168.1.101
【问题讨论】:
标签: wireshark
我试过dst==192.168.1.101,但只得到:
Neither "dst" nor "192.168.1.101" are field or protocol names.
The following display filter isn't a valid display filter:
dst==192.168.1.101
【问题讨论】:
标签: wireshark
实际上,由于某种原因,wireshark 使用两种不同的过滤器语法,一种用于显示过滤器,另一种用于捕获过滤器。显示过滤器仅用于查找某些流量,仅用于显示目的。就像您对所有流量都感兴趣,但现在您只想查看具体的。
但如果您只对某些流量感兴趣而根本不关心其他流量,那么您可以使用捕获过滤器。
显示过滤器的语法是(如前所述)
ip.addr = x.x.x.x
要么
ip.src = x.x.x.x
要么
ip.dst = x.x.x.x
但以上语法在捕获过滤器中不起作用,以下是过滤器
主机 x.x.x.x
在wireshark wiki page上查看更多示例
【讨论】:
您还可以将过滤器限制为仅部分 IP 地址。
例如要过滤123.*.*.*,您可以使用ip.addr == 123.0.0.0/8。使用/16 和/24 可以实现类似的效果。
查看WireShark man pages (filters) 并查找无类域间路由 (CIDR) 表示法。
...斜线后面的数字代表用来表示网络的位数。
【讨论】:
其他答案已经涵盖如何按地址过滤,但如果您想排除地址使用
ip.addr < 192.168.0.11
【讨论】:
ip.addr != 192.168.0.11 是正确的方式。
匹配目的地:ip.dst == x.x.x.x
匹配来源:ip.src == x.x.x.x
匹配任一:ip.addr == x.x.x.x
【讨论】:
ip.host 与ip.addr 效果相同。
在我们的使用中,我们必须使用主机 x.x.x.x 进行捕获。或(vlan 和主机 x.x.x.x)
任何东西都不会捕获?我不知道为什么,但这就是它的工作方式!
【讨论】:
在 Wireshark 中过滤 IP 地址:
(1)单IP过滤:
ip.addr==X.X.X.X
ip.src==X.X.X.X
ip.dst==X.X.X.X
(2)基于逻辑条件的多重IP过滤:
或条件:
(ip.src==192.168.2.25)||(ip.dst==192.168.2.25)
AND条件:
(ip.src==192.168.2.25) && (ip.dst==74.125.236.16)
【讨论】:
如果您只关心特定机器的流量,请改用捕获过滤器,您可以在Capture -> Options 下设置它。
host 192.168.1.101
Wireshark 只会捕获发送至192.168.1.101 或由192.168.1.101 接收的数据包。这样做的好处是需要较少的处理,从而降低了重要数据包被丢弃(丢失)的机会。
【讨论】:
试试
ip.dst == 172.16.3.255
【讨论】: