Все пакеты, которые вы получаете, получают заголовки пакетов одинакового типа;это тип, который вы получаете, когда вызываете pcap_datalink()
на pcap_t.Значения, которые возвращает pcap_datalink()
, являются значениями DLT_
, как показано на странице Типы заголовков канального уровня на сайте tcpdump.org.
Если вы открыли any
device, pcap_datalink()
вернет DLT_LINUX_SLL
, что означает, что ALL захваченные вами пакеты будут иметь "готовый" заголовок захвата - даже те, которые eth0
!Чтобы получить заголовки Ethernet для этих пакетов, вам нужно будет захватить eth0
, а не any
.