Start
本文以Visual Studio 2013和WinPcap 4.1.3作为示例,对32位和64位Win7通用
1、下载并安装WinPcap运行库
http://www.winpcap.org/install/default.htm
一些捕包软件会捆绑安装WinPcap,MentoHust也会附带WinPcap,这种情况下一般可以跳过此步。
2、下载WinPcap开发包
http://www.winpcap.org/devel.htm
解压到纯英文路径,得到如图1所示目录结构:
3、新建项目
以管理员权限打开Visual Studio,新建一个Visual C++的Win32控制台应用程序,设置为空项目,如图2所示:
4、设置项目
打开项目属性,如图3所示添加WPCAP
和HAVE_REMOTE
这两个宏定义:
5、添加wpcap.lib
和ws2_32.lib
两个库。
6、添加包含路径(即图1的Include
目录)和库路径(即图1的Lib
目录):
7、设置UAC
此步不是必须的,但是推荐设置。让生成的程序能够自动触发管理员权限对话框。无论如何,最终生成的程序都需要以管理员权限运行。
8、完成
完成以上步骤并点击确定保存设置以后,向项目添加需要的源文件即可。例如新建一个C++源文件(也可以添加现有的)
#include "pcap.h"
//#pragma comment(lib, "wpcap.lib")
void main()
{
pcap_if_t *alldevs,*d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
if (pcap_findalldevs(&alldevs, errbuf) == -1)
{
fprintf(stderr,"Error inpcap_findalldevs: %s\n", errbuf);
return;
}
for(d=alldevs;d;d=d->next)
{ printf("%d. %s", ++i,d->name);
if(d->description) printf(" (%s)\n", d->description);
else printf(" (Nodescription available)\n");
}
if(i==0)
{printf("\nNo interfaces found! Makesure WinPcap is installed.\n");
return;
}
/*We don't need any more the device list. Free it */
pcap_freealldevs(alldevs);
getchar();
}
几处疑惑解析:
1.附加依赖项 和 #pragma comment(lib, "wpcap.lib")两个效果是一样的,,静态加入一个lib文件。(二选一即可)
2预处理器定义:为什么添加了WPCAP
和HAVE_REMOTE
这两个宏定义:这两个宏是在使用的wincap这个库里面定义的
可见:http://blog.csdn.net/qq_17242957/article/details/50954447