在Visual Studio2012配置winpcap
来源:互联网 发布:python开发app 编辑:程序博客网 时间:2024/05/22 06:43
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><span style="font-family: Arial; line-height: 26px; background-color: rgb(255, 255, 255);">1.Winpcap的下载</span>
Winpcap官网:Winpcap官网
Winpcap目前最新版为4.1.3,首先你要下载exe文件并安装,直接双击运行安装即可。
下载地址:Winpcap4.1.3.exe
然后你需要下载开发包,包含一些需要的类库和文件
下载地址:Winpcap Developer's Pack 4.1.2
2.配置(注:双引号不是要写进去的内容)
由于visual studio2012中VC++目录功能被否决了,可能出于安全的考虑,不然万一用户弄错了,可能就得重装了VS2012了,所以为了能使用VC++目录功能,我们可以先新建一个项目,我在此新建的是win32 console application项目。
(1)新建完成后,右键项目,选取菜单中的属性(R),在“配置属性”----->“VC++目录”,在“包含目录”的最后添加“你解压的WpdPack目录\WpdPack\Include;”(别忘记加分号)。然后再“库目录”的末尾添加“你解压的WpdPack目录\WpdPack\Lib;”
(2)然后在“C/C++”----->“预处理器”----->"预处理器定义"的末尾添加“WPCAP;HAVE_REMOTE;”,在“链接器”----->“输入”----->"附加依赖项“末尾添加“wpcap.lib;Packet.lib;ws2_32.lib;”,然后点击确定即可。
3.测试(附上测试代码一例)
#define WIN32#define HAVE_REMOTE#include <stdio.h>#include "pcap.h"#include "Win32-Extensions.h"void gen_packet(unsigned char *buf,int len);/*生成数据包*/void gen_packet(unsigned char *buf,int len){int i=0;//设置目标MAC地址为01:01:01:01:01:01for (i=0;i<6;i++){buf[i]=0x01;}//设置源MAC地址为02:02:02:02:02:02for (i=6;i<12;i++){buf[i]=0x02;}//设置协议标识为0xc0xd,无任何实际意义buf[12]=0xc;buf[13]=0xd;//填充数据包的内容for(i=14;i<len;i++){buf[i]=i-14;}}int main(){pcap_if_t *alldevs;pcap_if_t *d;int inum;int i=0;pcap_t *adhandle;char errbuf[PCAP_ERRBUF_SIZE];int ret=-1; /* 获取本机网络设备列表 */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf); exit(1); } /* 打印网络设备列表 */ for(d=alldevs; d; 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; } /*选择网络设备接口*/ printf("Enter the interface number (1-%d):",i); scanf("%d", &inum); if(inum < 1 || inum > i) { printf("\nInterface number out of range.\n"); /* 释放设备列表 */ pcap_freealldevs(alldevs); return -1; } /* 跳转到选中的适配器 */ for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++); /* 打开设备 */ if ( (adhandle= pcap_open(d->name, // 设备名 65536, // 65535保证能捕获到数据链路层上每个数据包的全部内容 PCAP_OPENFLAG_PROMISCUOUS, // 混杂模式 1000, // 读取超时时间 NULL, // 远程机器验证 errbuf // 错误缓冲池 ) ) == NULL) { fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", d->name); /* 释放设备列表 */ pcap_freealldevs(alldevs); return -1; } /*在选中的设备接口上发送数据*/ printf("\nsending on %s...\n", d->description); /* 发送数据包*///生成数据报int packetlen=100;unsigned char *buf= (unsigned char *)malloc(packetlen);memset(buf,0x0,packetlen);gen_packet(buf,packetlen); //获得生成的数据包,长度为packetlen//开始数据包发送if ( (ret=pcap_sendpacket(adhandle,buf,packetlen))==-1){printf("发送失败\n");free(buf);pcap_close(adhandle); pcap_freealldevs(alldevs); return -1;} /*释放资源*/ free(buf); pcap_close(adhandle); pcap_freealldevs(alldevs); return 0;}
0 0
- 在Visual Studio2012配置winpcap
- 在Visual Studio2012中配置openCV
- Visual Studio2012 配置问题
- visual studio2012 配置Opencv
- MicroSoft Visual Studio2012配置OpenGl
- 如何在Visual Studio 2005下配置WinPcap开发环境
- 如何在Visual Studio 2005下配置WinPcap开发环境
- 在Visual Studio 2005下配置WinPcap开发环境
- 在Visual Studio 2005下配置WinPcap开发环境
- 在Visual Studio 2005下配置WinPcap开发环境
- visual studio 2015 配置 Winpcap
- Visual Studio2012环境下配置OpenCV的步骤
- Win7_64bits下Visual Studio2012中安装配置OpenCV
- visual studio2012常用快捷键
- Visual Studio 2005 下的 WinPcap 配置
- Visual Studio 配置Winpcap环境 详细
- 在 Visual C++ 中使用 WinPcap / Win10Pcap
- 在vs2010中配置Winpcap
- java http client参数唯一性校验
- Html DW -3-图像设置
- java中文半角和全角的转换
- MD5 密码加密算法 系统等待
- [cocos2d-x] --- 完美解决中文乱码
- 在Visual Studio2012配置winpcap
- 为什么会有#ifdef ...#else...#endif等条件编译语句
- 微软的操作系统历程
- HDU1505_City Game【最大完全子矩阵】
- SQL Server 2008中文版标准教程读书笔记 表(复习SQL Server 三)
- 为什么是长轮询而不是持久连接。
- 类与类之间的几种关系
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
- 利用jsoup打开网页获取一个document