QT配置NPACP及测试用例
一、NPACP-SDK下载
选择Download
1.点击Npacp SDK下载链接,这是库函数,等会需要放到工作目录下。
2.点击Npacp1.72installer下载npcap-1.72.exe,全部按照默认选项安装即可
二、QT配置Npacp
1.创建QT项目
记住该创建目录就是第二步的项目目录
2.进入该QT项目目录
3.将npacp-sdk解压并复制到该目录下
4.修改.pro文件
双击该.pro文件:
//1.添加依赖库路径和头文件路径
//pwd就是.pro路径,即上面我们提到的项目路径
NpcapHome += $$PWD/npcap-sdk-1.13
INCLUDEPATH += \
$${NpcapHome}/Include \
$${NpcapHome}/Include/pcap \
LIBS += \
$${NpcapHome}/Lib/x64/Packet.lib \
$${NpcapHome}/Lib/x64/wpcap.lib \
$${NpcapHome}/Lib/Packet.lib \
$${NpcapHome}/Lib/wpcap.lib
//2.添加CONFIG
CONFIG += c++11 -lwpcap -lpacket -lws2_32
修改后如图
3.测试npacp
修改main.cpp如下:
#include "mainwindow.h"
#include "pcap.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
pcap_if_t *alldevs;
pcap_if_t *d;
int i = 0;
char errbuf[PCAP_ERRBUF_SIZE];
/* Retrieve the device list from the local machine */
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);
}
/* Print the 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 Npcap is installed.\n");
}
/* We don't need any more the device list. Free it */
pcap_freealldevs(alldevs);
printf("\nEVERTHING IS OK\n");
w.show();
return a.exec();
}
控制台输出如下即配置成功