Wireshark过滤 – 试图过滤掉我自己的本地IP

我试图过滤掉我的本地机器的IP地址192.168.5.22

我用ip.src != 192.168.5.22|| ip.dst !=192.168.5.22 ip.src != 192.168.5.22|| ip.dst !=192.168.5.22 ,我一直看到我的地址popup。

or应该是一个and

 ip.src != 1.2.3.4 && ip.dst != 1.2.3.4 

米奇是对的。 像你这样的消极的比赛,你需要两个条件是真实的过滤掉你的IP, 不是 。 你也可以这样写:

 not (ip.addr == 192.168.5.22) 

把它写成ip.addr != 192.168.5.22似乎更合乎逻辑,但是虽然这是一个有效的expression式,但它将与连接的另一端匹配,因为它不是特定的ip,并且仍然是真的。 例如,当从192.168.5.22连接到192.168.5.254时, ip.addr != 192.168.5.22与* .22 IP不匹配,它匹配* .254,因此数据包与filterexpression式匹配。 下面是一个完整的例子来过滤http:

 not ip.addr == 192.168.5.22 and not tcp.dstport == 80 

tcp.dstport!= 80遭受类似的问题; 有tcp.dstport!= 80结果意味着“匹配只有tcpstream量,但只有tcp不是dstport == 80”

虽然不是严格的问题,但我更喜欢在捕获筛选器中进行筛选(双击捕获选项对话框中的接口名称),其语法与tcpdump完全相同。 它通过避免捕获您要求忽略的数据包,使捕获占用更less的内存和磁盘空间。 缺点是如果您稍后要检查这些数据包,则不会捕获数据包,并且在捕获会话期间无法更改以此方式select的filter。 例如,为了防止从/从任何主机和任何来自192.168.5.22的数据包捕获http和sshstream量,

 not host 192.168.5.22 and not port 80 and not port 22 

如果您只想过滤来自主机的HTTPstream量,您可以这样做:

 not (host 192.168.5.22 and port 80)