最近在学网络编程,想在windows下用Qt做个网络抓包工具,就要用到WinPcap,而我的电脑的系统是Win7 64位,qt版本是Qt 5.3.1 for Windows 64-bit (VS 2013, OpenGL),因此要在Win7 64位系统下配置Qt和WinPcap。
1、到http://www.winpcap.org/install/default.htm下载最新的WinPcap安装包,并安装,运行基于winpcap的程序需要其支持。
2、到http://www.winpcap.org/devel.htm 下载开发包,把winpcap开发包中的Include目录下的所有内容拷贝到qt的msvc2013_64_opengl/include目录下。。
3、把winpcap开发包中的Lib目录中的x64目录下的Packet.lib和wpcap.lib拷贝到msvc2013_64_opengl/lib目录下。
完成上面的三步,即可。
下面是一个测试例子。
新建一个空的Qt项目并添加main.cpp。
#include <stdio.h>
#include <stdlib.h>
#define HAVE_REMOTE
#include <pcap.h>
int main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i = 0;
char errbuf[PCAP_ERRBUF_SIZE];
/* get local devices */
if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1)
{
fprintf(stderr, "Error in pcap_findalldevs_ex: %s\n", errbuf);
exit(1);
}
/* print devices list */
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 -1;
}
pcap_freealldevs(alldevs);
return 0;
}
源码链接:http://download.csdn.net/detail/qq_17242957/9469072
http://blog.csdn.net/qq_17242957/article/details/50953630
http://blog.csdn.net/qq_17242957/article/details/50979646