获取设备列表(Microsoft Visual Studio 2010)

网友投稿 332 2022-10-29


获取设备列表(Microsoft Visual Studio 2010)

通常,编写基于WinPcap应用程序的第一件事情,就是获得已连接的网络适配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个 pcap_if 结构的链表, 每个这样的结构都包含了一个适配器的详细信息。值得注意的是,数据域 name 和 description 表示一个适配器名称和一个可以让人们理解的描述。

这样里面的代码就可以运行了;我们将WinPcap获取设备列表的程序复制到程序中,除了头文件其他都替换掉,此时看到代码中的函数下面是有波浪线的,是的,是因为我们还没有设置,先看代码,代码如下:

// ListInterface.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "pcap.h"int _tmain(int argc, _TCHAR* argv[]){    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 0;    }    /* 不再需要设备列表了,释放它 */    pcap_freealldevs(alldevs);}

对编译器做如下设置:

项目-->**属性(alt+F7)配置属性-->C/C++-->常规-->附加包含目录-->(是把头文件所在的文件路径添加到附加目录中C:\WpdPack\Include)

项目-->**属性(alt+F7)配置属性-->链接器-->常规-->附加库目录-->(是把Packet.lib;wpcap.lib所在目录添加到附加库目录中C:\WpdPack\Lib)

项目-->**属性(alt+F7)配置属性-->链接器-->输入-->附加依赖项-->补充“;Packet.lib;wpcap.lib”项目-->**属性(alt+F7)配置属性-->C/C++-->预处理器-->预处理器定义-->补充“;HAVE_REMOTE”

下面是获取的结果图:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:WinPcap获取设备列表
下一篇:利用mic visual studio 2010 编译器执行wincap获取网络适配器的代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~