Wireshark过滤器每个IP地址“不同”的东西

时间:2013-09-03 20:13:12

标签: wireshark

我想获取所有捕获的数据包,其中源或目标IP地址与192.168.0.1不同。为此我尝试了ip.addr!= 192.168.0.1,但是过滤器变黄了,而不是绿色,所以一定是错的。

怎样才能(正确地)完成?

1 个答案:

答案 0 :(得分:5)

  

6.4.4。一个常见的错误

     

[警告]警告!在组合表达式上使用!=运算符,例如:   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地址等于1.2.3.4。原因是,   是表达式ip.addr!= 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.addr的字段,值为1.2.3.4“。

Source