通过IP的PCapfilter不会过滤掉0.0.0.0

我有我的PCapfilter设置为“dst净10.36.95.0掩码255.255.255.0”。 这是因为它过滤掉了大部分stream量在10.36.95.0/24子网之外的目的地,唯一的例外是它仍然捕获到0.0.0.0的stream量。

任何想法为什么会发生这种情况,或者我能做些什么来过滤掉0.0.0.0呢?

一些额外的信息:

$ sudo tcpdump -d dst net 10.36.95.0 mask 255.255.255.0 -i eth0 (000) ldj [12] (001) jeq #0x800 jt 2 jf 5 (002) ld [30] (003) and #0xffffff00 (004) jeq #0xa245f00 jt 10 jf 11 (005) jeq #0x806 jt 7 jf 6 (006) jeq #0x8035 jt 7 jf 11 (007) ld [38] (008) and #0xffffff00 jt 10 jf 11 (009) jeq #0xa245f00 (010) ret #65535 (011) ret #0 

我正在Java中的PcapPacket头中查看源和目的地。

也就是说,你正在使用jNetPcap?

不要使用任何与IPv4不相关的数据包的IPv4相关数据包parsing代码,因为它们会给您带来垃圾。 ARP报文不是IPv4报文, 对于Ethernettypes为0x0806的数据包,请使用Arp类而不是Ip4类 。