我将 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
即,您正在使用jNetPcap?
不要对不是 IPv4 数据包的数据包使用任何与 IPv4 相关的数据包解析代码,因为它们会给您带来垃圾。ARP 数据包不是 IPv4 数据包;对以太网类型为 0x0806 的数据包使用Arp 类,而不是Ip4 类。