利用mic visual studio 2010 编译器执行wincap获取网络适配器的代码

时间:2022-03-10 02:03:03

标签:网络编程winpcap

WinPcap提供了 pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个 pcap_if 结构的链表, 每个这样的结构都包含了一个适配器的详细信息。值得注意的是,数据域 name 和 description 表示一个适配器名称和一个可以让人们理解的描述。

下列代码能获取适配器列表,并在屏幕上显示出来,如果没有找到适配器,将打印错误信息。

核心代码:

#include "pcap.h"main() {    pcap_if_t *alldevs;    pcap_if_t *d;    int i=0;    char errbuf[PCAP_ERRBUF_SIZE];         /* 获取本地机器设备列表 */     if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)     {         fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);         exit(1);     }         /* 打印列表 */     for(d= alldevs; d != NULL; d= d->next)     {         printf("%d. %s", ++i, d->name);         if (d->description)             printf(" (%s)\n", d->description);        else             printf(" (No description available)\n");     }         if (i == 0)     {         printf("\nNo interfaces found! Make sure WinPcap is installed.\n");        return;     }    /* 不再需要设备列表了,,释放它 */     pcap_freealldevs(alldevs); } int pcap_findalldevs_ex  (    char *     source,                                         struct pcap_rmtauth * auth,                                          pcap_if_t **     alldevs,                                          char *     errbuf                                      )

利用mic visual studio 2010 编译器执行wincap获取网络适配器的代码