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

dei*_*rus 2 wireshark

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

怎么能(正确地)完成?

kol*_*kol 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地址1.2.3.4过滤掉所有包含IP数据报的数据包,那么正确的过滤器是!(ip.addr == 1.2.3.4),因为它显示"向我展示它不是的所有数据包"如果名为ip.addr的字段存在,其值为1.2.3.4",或者换句话说,"过滤掉所有没有出现名为ip.addr且值为1.2.3.4的字段的数据包".

资源