Wireshark 提示和技巧 | 显示过滤之 a 不等于 b

前言

本文基于 Wireshark Version 3.6.0 之前的软件版本 ,在 Wireshark Version 3.6.0 以后已经更新了该显示过滤表达式的过滤逻辑,简要说明:

The expression “a != b” now always has the same meaning as “!(a == b)”. In particular this means filter expressions with multi-value fields like “ip.addr != 1.1.1.1” will work as expected (the result is the same as typing “ip.src != 1.1.1.1 and ip.dst != 1.1.1.1”). This avoids the contradiction (a == b and a != b) being true.

另本文标题原为:《Wireshark 提示和技巧 | !(ip.addr == x.x.x.x) 和 (ip.addr != x.x.x.x) 的区别》,CSDN 标题禁止词 ! 🤣


显示过滤之 !=

关于 Wireshark 显示过滤中 != 的使用事项,简要说明如下:

ip.addr == 1.2.3.4

显示所有包含 IP 地址 1.2.3.4 的数据包。

!(ip.addr == 1.2.3.4)
等同于
!ip.addr == 1.2.3.4

显示所有不包含 IP 地址 1.2.3.4 的数据包。

(ip.addr != 1.2.3.4)
等同于
ip.addr != 1.2.3.4

显示所有不包含 IP 地址 1.2.3.4 的数据包?不是

显示过滤器栏中为 黄色显示(正确的应为 绿色显示 ),表示过滤表达式被接受,但可能无法按预期工作 !!!

因为 ip.addr != 1.2.3.4 表达式被理解为 “the packet contains a field named ip.addr with a value different from 1.2.3.4” ,而 IP 数据包包含源和目的 IP 地址,当两个地址中至少有一个与 1.2.3.4 不同时,表达式的值将为 True 。


实例演示

以 TCP 三次握手的数据包做一个简单实例演示,如下:
IPADDR-01

显示过滤器中应用 ip.addr == 10.0.0.1 ,正确过滤所需数据包。
IPADDR-02

绿色显示,表达式被接受,正常过滤。


显示过滤器中应用 !(ip.addr == 10.0.0.1) ,正确过滤所需数据包。
IPADDR-03
显示过滤器中应用 ip.addr != 10.0.0.1未能按预期过滤所需数据包,仍然存在 IP 地址为 10.0.0.1 的数据包。
IPADDR-04

黄色显示,表达式被接受,但可能无法按预期过滤。


总结

  1. 显示过滤中的黄色提示,需根据实际场景区分,像是其他个别场景黄色显示也能正常工作;
  2. 表达式的语法,包括符号的使用,注意规范书写;
  3. 数据包字段,有可能因为多个字段同名(像是 ip.addr,或是数据包多层封装的原因),需注意精准过滤。


感谢阅读,更多技术文章可关注个人公众号:Echo Reply ,谢谢。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值