我想获取所有捕获的数据包,其中源或目标IP地址不同于,例如,192.168.0.1.为此我尝试了ip.addr!= 192.168.0.1,但是过滤器变黄了,而不是绿色,所以一定是错的.
怎么能(正确地)完成?
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的字段的数据包".
| 归档时间: |
|
| 查看次数: |
793 次 |
| 最近记录: |