WinPcap应用程序的环境配置(在Visual studio2015下面进行网络编程)

蓝咒 提交于 2020-01-23 23:17:58

在使用Visual Studio2015进行网络编程时,需要使用到WpdPack,但是在配置环境的过程中,遇到了许多的问题,在这里展示如何成功的完成环境的配置

1.下载所需要的资源

我们所需要的资源是一个驱动程序和一个sdk,sdk是为了方便我们调用里面的函数,而由于WpdPack是在windows底层的调用,属于系统函数,所以我们需要使用它的驱动程序来进行自己驱动调用。
驱动程序的下载界面:

驱动程序

在这里插入图片描述
点击这个Installer for Windows就行了

sdk

这个sdk的目的是为了方便能够进行函数的调用在这里插入图片描述
点击Download就行了,注意,虽然上面说并没有支持windows10系统,但是Windows10系统是可以运行的。

2.进行程序的运行和配置

1.首先执行这个exe文件,一直点确定,就可以完成驱动程序的安装。

在这里插入图片描述
2.解压压缩包,进入如下路径
在这里插入图片描述
打开此目录下的pcap.h(注意,一定是这个目录下面的,上一层目录也有这个文件,一定要区分正确)

3.在这个文件中(pcap.h)加入#define WIN32,这样是为了方面调用。
在这里插入图片描述

3.进行代码的书写和执行。

首先我们先创建一个项目:

1.文件->新建->项目

在这里插入图片描述

2.一直点击确定,点击完成,完成项目的创建。

3.打开如图位置,进行资源的导入,选择导入现有项。

在这里插入图片描述

4.导入 我们之前下载的WpdPack下面的两个lib文件

在这里插入图片描述

5.将WpdPack的include目录导入到项目中来(这一步很重要!很重要!很重要!)

在这里插入图片描述

在这里插入图片描述

6.在附加包含目录中把下载的WpdPack里的include目录导入(如图所示)

在这里插入图片描述

7.点击应用。

8,运行测试代码。(将下面的代码替换到你的主界面,也就是有main函数的那个界面,全部替换掉,包括提供的库文件)

#include “stdafx.h”
#include <stdio.h>
#include <ctype.h>
#include <pcap.h>
#define MAXBYTES2CAPTURE 2048
void processPacket(u_char *arg, const struct pcap_pkthdr *pkthdr, const u_char *packet)
{
int i = 0, *counter = (int *)arg;
printf(“Pcaket Count: %d\n”, ++(*counter)); printf(“Received Packet Size: %d\n”, pkthdr->len); printf(“Payload:\n”); for (i = 0; ilen; i++) {
if (isprint(packet[i])) printf("%c “, packet[i]); else printf(”. “); if ((i % 16 == 0 && i != 0) || i == pkthdr->len - 1) printf(”\n");
}
}

int main()
{
int i = 0, count = 0; pcap_t *descr = NULL; char errbuf[PCAP_ERRBUF_SIZE], *device = NULL; memset(errbuf, 0, PCAP_ERRBUF_SIZE);
/获取第一个适合捕获的网络设备名称/ device = pcap_lookupdev(errbuf);
printf(“Opening device %s\n”, device);
/以混杂模式打开网络设备/ descr = pcap_open_live(device, MAXBYTES2CAPTURE, 1, 512, errbuf);
/死循环并在每一次接收到数据包时调用回调函数processPacket()/ pcap_loop(descr, -1, processPacket, (u_char *)&count);
return 0;
}

9.如果能够运行成功的话,应该会出现下面这个界面

在这里插入图片描述

10.如果测试代码运行成功的话,恭喜你已经成功运行了WpdPack。

这就是WinPcap程序环境配置的全过程,如果有帮助的话,帮忙点波赞吧,谢谢啦

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!