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

  

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

,,,,,,,,我们使用微软Visual Studio 2010编译工具编译程序,中WinPcap文档中模块下找到获取设备列表,点击打开便有获取设备列表的程序代码,打开微软Visual Studio 2010编译工具,点击文件,新建项目,然后设置项目名,保存路径可以是改到自己想存的路径,也可以使用默认路径,点击确认,下一步,完成,此时我们对里面的代码进行编译是会出错的,所以接下来点击编译器中的项目,在最下面有个* *属性(alt + F7)
配置属性,在清单工具,在输入和输出,在嵌入清单——祝辞否

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

//ListInterface。cpp:定义控制台应用程序的入口点。
//

# include“stdafx。h pcap
# include。h”


int _tmain (int命令行参数个数,_TCHAR * argv [])
{
,,,pcap_if_t * alldevs;
,,,pcap_if_t * d;
,,,int i=0;
,,,char errbuf [PCAP_ERRBUF_SIZE];
,,,
,,/*获取本地机器设备列表*/
,,,如果(pcap_findalldevs_ex (PCAP_SRC_IF_STRING,零/*不需要身份验证*/,,alldevs, errbuf)==1)
,,,{
,,,,,,,在pcap_findalldevs_ex流(stderr,“错误:% s \ n”, errbuf);
,,,,,,,退出(1),
,,,}
,,,
,,/*打印列表*/
,,,(d=alldevs;d !=零;d=d→下)
,,,{
,,,,,,,printf (" % d。% s”+ + i d→名称),
,,,,,,,如果(d→描述)
,,,,,,,,,,,printf (" (% s) \ n”, d→描述),
,,,,,,,其他
,,,,,,,,,,,printf("(没有描述)\ n ");
,,,}
,,,
,,如果(i==0)
,,,{
,,,,,,,printf (" \ nNo接口发现!确保安装WinPcap。\ n”);
,,,,,,,返回0;
,,,}

,,,/*不再需要设备列表了,释放它*/
,,,pcap_freealldevs (alldevs);

}

对编译器做如下设置:

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


项目,在* *属性(alt + F7)
配置属性,在链接器——在常规——祝辞附加库目录——祝辞(是把Packet.lib; wpcap。自由所在目录添加到附加库目录中C: \ WpdPack \ lib)


项目,在* *属性(alt + F7)
配置属性,在链接器——在输入——祝辞附加依赖项——在补充”;Packet.lib wpcap。自由”

项目,在* *属性(alt + F7)
配置属性,在C/c++,祝辞预处理器——在预处理器定义,在补充”;HAVE_REMOTE”

下面是获取的结果图:

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


  附件:http://down.51cto.com/data/2368293

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