如何在Wireshark中按IP地址进行过滤?

297

我尝试使用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
8个回答

543

匹配目的地: ip.dst == x.x.x.x

匹配来源: ip.src == x.x.x.x

匹配任意一个: ip.addr == x.x.x.x


ip.hostip.addr 具有相同的效果。 - Shihe Zhang

42

在Wireshark中过滤IP地址:

(1)单个IP过滤:

ip.addr==X.X.X.X

ip.src==X.X.X.X

ip.dst==X.X.X.X

(2)基于逻辑条件的多个IP过滤:

OR条件:

(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)


39

您还可以将过滤器限制在IP地址的一部分上。

例如,要筛选123.*.*.*,您可以使用ip.addr == 123.0.0.0/8。类似的效果也可以通过/16/24实现。

参见WireShark man页面(过滤器)并查找无类域间路由选择(CIDR)表示法

…斜杠后面的数字代表用于表示网络的位数。


19

如果你只关心特定机器的流量,请使用捕获过滤器,可以在 Capture -> Options 下进行设置。

host 192.168.1.101

Wireshark只会捕获发送到或接收自192.168.1.101的数据包。这样可以减少处理的负担,降低重要数据包被丢弃(错过)的概率。


我也在我朋友的电脑上看到了这个。捕获过滤器可能已经在较新版本的Wireshark中移动到其他位置了。 - Dean
可能是因为我正在运行试用版... >_< - Shanimal
2
捕获过滤器只能在停止捕获时构建。它们必须预先编译。停止捕获,然后菜单“捕获...选项...”选项将重新启用。 - jdw
我尝试过这个方法,但无法捕获连接到同一路由器的其他设备的数据包。是否有其他方法可以使用自己的笔记本电脑来捕获另一个设备连接到同一路由器的数据包? - ABD

11

尝试一下

ip.dst == 172.16.3.255

11
实际上由于某些原因,wireshark在显示过滤器和捕获过滤器中使用了两种不同的过滤器语法。显示过滤器仅用于找到特定流量以供显示目的。就好比您对所有流量感兴趣,但现在只想查看特定流量。

但是,如果您只对某些流量感兴趣,并且完全不关心其他流量,则可以使用捕获过滤器。

显示过滤器的语法如下(如前所述):

ip.addr = x.x.x.xip.src = x.x.x.xip.dst = x.x.x.x

但是,以上语法在捕获过滤器中不起作用,以下是过滤器的示例:

host x.x.x.x

更多示例请参见wireshark wiki页面


这个让我花了很长时间才适应。它也使你能找到的建议有一半都不相关,这是入门的障碍。 :( - Nanban Jim
3
捕获过滤器使用不同语法的原因是它正在寻找一个pcap过滤表达式,并将其传递给底层的libpcap库。Libpcap起源于tcpdump。由于Wireshark对协议有更丰富的理解,它需要一种更丰富的表达语言,因此它提出了自己的语言。 - Jim Hoagland

1
在我们的使用中,我们必须使用主机x.x.x.x进行捕获,或者(VLAN和主机x.x.x.x)进行捕获。
任何少于这个条件的情况都不能进行捕获。我不确定为什么,但这就是它的工作方式!

由于1)libpcap/WinPcap过滤器(Wireshark捕获过滤是通过libpcap/WinPcap完成的)功能有限,不能检查VLAN封装和非VLAN封装数据包,以及2)您的网络使用了VLAN。这很不幸,但这就是事实。 - user862787

-2
其他回答已经涵盖了如何按地址过滤,但如果您想要排除一个地址,请使用 ip.addr < 192.168.0.11

“ip.addr != 192.168.0.11” 是正确的写法。 - Bheid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接