Полагаю, это зависит от того, что вы подразумеваете под «сетевыми» устройствами.
Если вы имеете в виду устройства IPv4 / IPv6, вы можете запросить pcap_if_t->address
, возвращаемое pcap_findalldevs
, и посмотреть на addr.sa_family
каждого адреса.поле, чтобы определить, поддерживает ли это устройство AF_INET
и / или AF_INET6
.Устройства с обратной связью будут (pcap_if_t->flags & PCAP_IF_LOOPBACK) != 0
.
Проблема в том, что они будут включать устройства, которые не являются Ethernet и WiFi, такие как Token Ring, IP-over-Firewire, PPP и тому подобное.PCAP не предоставляет переносимый способ узнать тип оборудования.