PCap 通过 IP 进行过滤,不过滤掉 0.0.0.0

PCap 通过 IP 进行过滤,不过滤掉 0.0.0.0

我将 PCap 过滤器设置为“dst net 10.36.95.0 mask 255.255.255.0”。这样做的原因是,它过滤掉了大多数目的地在 10.36.95.0/24 子网之外的流量,但例外的是,它仍然会捕获去往 0.0.0.0 的流量。

知道为什么会发生这种情况吗?或者我该怎么做才能过滤掉 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 

答案1

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

即,您正在使用 jNetPcap?

不要对非 IPv4 数据包使用任何与 IPv4 相关的数据包解析代码,因为它们会产生垃圾信息。ARP 数据包不是 IPv4 数据包;请使用Arp 类, 不是Ip4 类,针对以太网类型为 0x0806 的数据包。

相关内容