ip.src!=ADDR 和 !ip.src==ADDR 之间的区别
difference between ip.src!=ADDR and !ip.src==ADDR
假设我的 IP 地址是 192.168.1.12,我想使用显示过滤器查看不包含我的 IP 地址的流量。
过滤器“!ip.src==192.168.1.12 and !ip.dst==192.168.1.12
”的结果与过滤器“ip.src!=192.168.1.12 and ip.dst!=192.168.1.12
”的结果不同。这太奇怪了,谁能给我解释一下?
顺便说一句,我检查了 wireshark 的文档 6.4.7. A Common Mistake with !=,我确定我不会在这里犯同样的错误。
这是模拟世界的类比:
"show me apples that are not red"
和
"don't show me red apples".
你会用青苹果做什么?
Wiresahrk 显示过滤器的工作原理类似。如果您指定 !ip.addr==192.168.1.12
,您将抑制从指定 IP 地址发送的所有 IP 数据包。但是您不会抑制其他数据包,例如ARP 数据包。
但是,如果您指定 ip.addr!=192.168.1.12
,您将只获取从指定 IP 地址以外的任何主机发送的 IP 数据包。你会看到更少的数据包。
因为你想检查源地址或目标地址,所以我使用 ip.addr
。这是为此目的的缩写。
如果您想过滤不包含 IP 地址“192.168.1.12”的流量,那么您有以下两种选择。
选项:1
您可以使用以下过滤器来代替特定来源和特定目标过滤器:
!(ip.addr == 192.168.1.12)
选项:2
如果您想同时使用源过滤器和目标过滤器,则逻辑运算将为“或”。您可以使用以下过滤器:
!(ip.src == 192.168.1.12 或 ip.dst == 192.168.1.12)
假设我的 IP 地址是 192.168.1.12,我想使用显示过滤器查看不包含我的 IP 地址的流量。
过滤器“!ip.src==192.168.1.12 and !ip.dst==192.168.1.12
”的结果与过滤器“ip.src!=192.168.1.12 and ip.dst!=192.168.1.12
”的结果不同。这太奇怪了,谁能给我解释一下?
顺便说一句,我检查了 wireshark 的文档 6.4.7. A Common Mistake with !=,我确定我不会在这里犯同样的错误。
这是模拟世界的类比:
"show me apples that are not red"
和
"don't show me red apples".
你会用青苹果做什么?
Wiresahrk 显示过滤器的工作原理类似。如果您指定 !ip.addr==192.168.1.12
,您将抑制从指定 IP 地址发送的所有 IP 数据包。但是您不会抑制其他数据包,例如ARP 数据包。
但是,如果您指定 ip.addr!=192.168.1.12
,您将只获取从指定 IP 地址以外的任何主机发送的 IP 数据包。你会看到更少的数据包。
因为你想检查源地址或目标地址,所以我使用 ip.addr
。这是为此目的的缩写。
如果您想过滤不包含 IP 地址“192.168.1.12”的流量,那么您有以下两种选择。
选项:1
您可以使用以下过滤器来代替特定来源和特定目标过滤器:
!(ip.addr == 192.168.1.12)
选项:2
如果您想同时使用源过滤器和目标过滤器,则逻辑运算将为“或”。您可以使用以下过滤器:
!(ip.src == 192.168.1.12 或 ip.dst == 192.168.1.12)