获取设备列表(Microsoft Visual Studio 2010)
2016-10-25 15:41
281 查看
通常,编写基于WinPcap应用程序的第一件事情,就是获得已连接的网络适配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个 pcap_if 结构的链表,
每个这样的结构都包含了一个适配器的详细信息。值得注意的是,数据域 name 和 description 表示一个适配器名称和一个可以让人们理解的描述。
我们使用Microsoft Visual Studio 2010编译工具编译程序,中WinPcap文档中模块下找到获取设备列表,点击打开便有获取设备列表的程序代码;打开Microsoft Visual Studio 2010编译工具,点击文件,新建项目,然后设置项目名,保存路径可以是改到自己想存的路径,也可以使用默认路径,点击确认,下一步,完成;此时我们对里面的代码进行编译是会出错的,所以接下来点击编译器中的项目-->最下面有个**属性(alt+F7)
配置属性-->清单工具-->输入和输出-->嵌入清单-->否
这样里面的代码就可以运行了;我们将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”
下面是获取的结果图:
附件:http://down.51cto.com/data/2368293
每个这样的结构都包含了一个适配器的详细信息。值得注意的是,数据域 name 和 description 表示一个适配器名称和一个可以让人们理解的描述。
我们使用Microsoft Visual Studio 2010编译工具编译程序,中WinPcap文档中模块下找到获取设备列表,点击打开便有获取设备列表的程序代码;打开Microsoft Visual Studio 2010编译工具,点击文件,新建项目,然后设置项目名,保存路径可以是改到自己想存的路径,也可以使用默认路径,点击确认,下一步,完成;此时我们对里面的代码进行编译是会出错的,所以接下来点击编译器中的项目-->最下面有个**属性(alt+F7)
配置属性-->清单工具-->输入和输出-->嵌入清单-->否
这样里面的代码就可以运行了;我们将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”
下面是获取的结果图:
附件:http://down.51cto.com/data/2368293
相关文章推荐
- 获取设备列表(Microsoft Visual Studio 2010)含界面设计
- [VS2010]Microsoft Visual Studio 2010 最新下载地址
- 立即注册Microsoft Visual Studio 2010全球发布会,抢VIP席位,赢取限量礼品!
- Microsoft Visual Studio 2010 下载及学习资料大全
- Microsoft Visual Studio 2010体验(2)
- 老微开放下载地址了,Microsoft Visual Studio 2010 旗舰版试用版
- Microsoft Visual Studio 2010 The application cannot start.错误解决方案
- Microsoft Visual Studio 2010 and the .NET Framework 4.0 CTP下载
- Microsoft Visual Studio 2010体验(5)
- Microsoft Visual Studio 2010 简体中文旗舰版下载
- Microsoft Visual Studio 2010 Install
- Microsoft Visual Studio 2010 Ultimate - ISO 官方下载地址
- Microsoft Visual Studio 2010 官方下载地址
- Microsoft Visual Studio 2010 简体中文旗舰版下载安装报告
- Microsoft Visual Studio 2010 宣传短片
- Microsoft Visual Studio 2010 下载地址
- Microsoft Visual Studio 2010 Ultimate 正式版注册码
- 05 Nov 08 夸张的Microsoft Visual Studio 2010 CTP
- Microsoft Visual Studio 2010 HelpLibrary管理配置路径更改
- Microsoft Visual Studio 2010 旗舰版试用 - ISO