首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wireshark滤波器:(ip.addr == 192.0.2.1)和(ip.addr != 192.0.2.1)之间的差异

Wireshark滤波器:(ip.addr == 192.0.2.1)和(ip.addr != 192.0.2.1)之间的差异
EN

Stack Overflow用户
提问于 2018-02-20 19:11:28
回答 2查看 4.9K关注 0票数 3

对于Wireshark中的过滤器,!(ip.addr == 192.0.2.1)和(ip.addr != 192.0.2.1)的区别是什么?当检查结果时,结果不一样,我不知道为什么.

另外,当我应用过滤器(ip.addr != 192.0.2.1)时,滤镜(黄色)中的背景颜色会有所不同。图像

有人能帮我吗?提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-02-20 21:34:48

在布尔逻辑中,A not equals Bnot A equals B是相同的测试。

但是,由Jürgen Thelen链接的WireShark文档的相关部分解释说,在WireShark中,ip.addr涵盖源字段和目标字段,因此测试更像是:

代码语言:javascript
复制
not ((A or B) equals C)

它过滤源或目标匹配的数据包,然后隐藏它们(正确)。

与之相比:

代码语言:javascript
复制
(A or B) not equals C

它过滤源或目的地都不是C的数据包,这是每个数据包,所以它显示了每个数据包。

6.4.6.在组合表达式(如eth.addr、ip.addr、tcp.port和udp.port )上使用!=运算符的常见错误可能不会像预期的那样工作。 人们通常使用过滤器字符串来显示类似于ip.addr == 1.2.3.4的内容,这将显示包含IP地址1.2.3.4的所有数据包。 然后,他们使用ip.addr != 1.2.3.4来查看其中不包含IP地址1.2.3.4的所有数据包。不幸的是,这并没有达到预期的效果。 相反,对于源IP地址或目标IP地址等于1.2.3.4的数据包,该表达式甚至都是正确的。原因是表达式ip.addr != 1.2.3.4必须读取为“数据包包含一个名为ip.addr的字段,其值与1.2.3.4不同”。由于IP数据报同时包含源地址和目标地址,因此当两个地址中至少有一个与1.2.3.4不同时,表达式将计算为true。

使用黄色背景的原因是由于这种潜在的令人惊讶的行为,并且在状态栏底部有一个匹配的警告,建议查看用户指南以获得更多详细信息:

票数 3
EN

Stack Overflow用户

发布于 2018-02-20 19:21:34

假设我们想过滤掉10.43.54.65之间的任何通信量。我们可以尝试以下方法:ip.addr != 10.43.54.65。这意味着“传递除源IPv4地址为10.43.54.65和目标IPv4地址为10.43.54.65的通信量以外的所有通信量”。 ! ( ip.addr == 10.43.54.65 )。这意味着“传递任何通信量,除非源IPv4地址为10.43.54.65或目标IPv4地址为10.43.54.65”。

您可以在Wireshark: DisplayFilters上看到更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48892578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档