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