WinPcap的安装配置与初步使⽤
配置环境
Windows 10
Visual Studio 2017
配置步骤
安装winpcap
下载wpdpack
启动vs2017
新建visual C++空项⽬
项⽬->属性->左侧配置属性->VC++⽬录,修改包含⽬录和库⽬录到wpdpack的include和lib
项⽬->属性->C/C++->预处理器->预处理器定义,添加_XKEYCHECK_H; HAVE_REMOTE;WPCAP;WIN32
项⽬->属性->链接器->输⼊->附加依赖项,添加Packet.lib;wpcap.lib;ws2_32.lib
报错:⽆法打开源⽂件sys/time.h和u_int
原因:这些都是unix系统的东西,需要在主⽂件中指明是windows系统
解决⽅法:#define WIN32(若预处理器定义中已有WIN32则不会出现问题)
报错:不到源⽂件stdafx.h
原因:已经再预编译头中定义,不需要多余include
报错:const char 与char *不兼容
解决⽅法:属性 -> C/C++ -> 语⾔ -> 符合模式 -> 否
报错:⼀些带有define建议的Unsafe报错,⽐如建议将strcpy改为strcpy_s或屏蔽报错
原因:在新版本的VS中使⽤了⼀些⽐较古⽼的函数
strcpy报错解决⽅法:在预处理器定义中添加_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS Demo
#include "pcap.h"
#include "windows.h"
#include <iostream>
using namespace std;
#pragma comment(lib, "wpcap.lib")
int main()
{
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");
}
int a; cin >> a;//卡⼀下输出
if (i == 0)
{
printf("\nNo interfaces found!Make sure WinPcap is installed.\n");
return 0;
}
pcap_freealldevs(alldevs);
}
参考资料:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论