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 ответ
Я искал источник и назначение в заголовке PcapPacket в Java.
Т.е. вы используете jNetPcap?
Не используйте какой-либо код разбора пакетов, связанный с IPv4, с пакетами, которые не являются пакетами IPv4, так как они могут дать вам мусор. Пакеты ARP не являются пакетами IPv4; используйте класс Arp, а не класс Ip4, для пакетов с типом Ethernet 0x0806.