#include <pcap.h> #include <stdio.h> /* * 获取所有网络设备 */ /* * defined in pcap.h * #define PCAP_ERRBUF_SIZE 256 */ /* * Item in a list of interfaces. * defined in pcap.h * struct pcap_if { struct pcap_if *next; char *name; // name to hand to "pcap_open_live()" char *description; // textual description of interface, or NULL struct pcap_addr *addresses; bpf_u_int32 flags; // PCAP_IF_ interface flags }; typedef struct pcap_if pcap_if_t; */ /* * implemented in pcap_findalldevs.3pcap * int pcap_findalldevs(pcap_if_t **alldevsp, char *errbuf); */ int main(int argc, char **argv) { pcap_if_t *devpointer; char ebuf[PCAP_ERRBUF_SIZE]; if (pcap_findalldevs(&devpointer, ebuf) < 0) { printf("%s", ebuf); } else { for (int i = 0; devpointer != 0; i++) { printf("%d.%s", i+1, devpointer->name); if (devpointer->description != NULL) printf(" (%s)", devpointer->description); printf("/n"); devpointer = devpointer->next; } } return 0; }