Winpcap 环境部署.doc_第1页
Winpcap 环境部署.doc_第2页
Winpcap 环境部署.doc_第3页
Winpcap 环境部署.doc_第4页
Winpcap 环境部署.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Winpcap 环境部署(VC6.0出现“pcap.h: No such file or directory”问题解决方法)Winpcap简介及Winpcap安装包和开发包下载地址:Winpcap是一个强大的网络开发库,可以实现许多功能:获取可用的网络适配器;获取指定适配器信息(比如名称和描述信息);捕获指定网卡的数据封包;发送数据封包;过滤捕获的包以获取特定包等。首先到/install/default.htm下载安装winpcap 驱动和DLL组件。 注意下图被红线圈起来的地方,即使下载地址,点击进入 然后到/devel.htm.下载winpcap开发包,解压到指定目录,这里我解压到C:WpdPack_4_0_2WpdPack,可以看到里面包含了:Lib,Include,文档和示例程序。把安装包和开发包下载下来后,执行安装包,这样你的机子就能运行winpcap程序了,解压开发包里面有具体解决方法:这里的include和lib文件夹里的东西因为vc6.0里没有,所以编译一些程序时我们要手动添加。如果出现fatal error C1083: Cannot open include file: pcap.h: No such file or directory这个问题,就需要添加了。下面是具体添加步骤:第一步:点菜单栏上的“工具”,再点击下拉菜单中的“选项”弹出“选项”对话框点“目录”在“目录【S】”的下面选择include files然后按底下的添加符号,把你写的winpcap开发包解压到的具体路径添加进去,如上图我的路径是C:WpdPack 4 1 beta4WpdPackinclude把这个添加进去就行了然后选择“目录”下的下拉菜单中的library files把winpcap开发包里的lib文件路径添进去,我的是C:WpdPack_4_1_beta4WpdPackLib。第二步菜单栏里的 工程设置 ,弹出project settinggs对话框,点击连接然后在“对象/库模块”下加入wpcap.lib Packet.lib 注意这个地方每个之间用空格隔开。然后再在这个对话框里点CC+在“预处理程序定义”下加上WPCAP,HAVE_REMOTE,注意它们之间用逗号隔开Winpcap的环境就部署好了在VC6.0里建一个工程 ,工程win32 console aplicatio,然后再在工程里新建一个一个CC+ Source File文件把下面代码粘贴进去运行编译,检测环境是否真的配好了,结果应该是零错误,编译成功。#include pcap.h#include /#include #pragma comment( lib, wpcap.lib )/* packet handler 函数原型 */void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);main()pcap_if_t *alldevs;pcap_if_t *d;int inum;int i=0;pcap_t *adhandle;char errbufPCAP_ERRBUF_SIZE; /* 获取本机设备列表 */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) = -1) fprintf(stderr,Error in pcap_findalldevs: %sn, 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 i) printf(nInterface number out of range.n); /* 释放设备列表 */ pcap_freealldevs(alldevs); return -1; /* 跳转到选中的适配器 */ for(d=alldevs, i=0; inext, 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 WinPcapn, d-name); /* 释放设备列表 */ pcap_freealldevs(alldevs); return -1; printf(nlistening on %s.n, d-description); /* 释放设备列表 */ pcap_freealldevs(alldevs); /* 开始捕获 */ pcap_loop(adhandle, 0, packet_handler, NULL); return 0;/* 每次捕获到数据包时,libpcap都会自动调用这个回调函数 */void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) struct tm *ltime; char timestr16; time_t local_tv_sec; /* 将时间戳转换成可识别的格式 */ local_tv_sec = header-ts.tv_sec; ltime=l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论