使用Winpcap示例程序的时候解疑.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Winpcap示例程序的时候解疑

使用Winpcap示例程序的时候,会出现很多错误(转) WINPCAP编程环境设置 2008-05-19 12:41 一、WINPCAP编程环境设置 在正式WinPcap编程之前,要配置运行环境。 1、运行环境设置 Win32 平台下WinPcap应用程序需要以下四个动态链接库才能正常运行:wpcap.dll Packet.dll WanPacket.dll pthreadVC.dll 这四个动态链接库在WinPcap驱动程序里。 如果没有这个驱动程序,需要到WinPcap官方网站上下载,下载地址为:www.WinP 如果应用程序出现一下提示,那就是没有安装驱动程序的原因了。 也可以不安装WinPcap驱动程序。但是需要把上面提到的四个动态链接库文件拷贝到系统分区/WINDOWS/system32目录下。(似乎有些问题) 2、配置编程环境。 1 从WWW.WINPCAP.ORG上下载WINPCAP SDK -WpdPack,WinPcap SDk里面包含库文件,头文件,文档文件和一些例子。解压到一个指定的目录。解压缩后把Include目录添加到IDE的包含文件中(VC6.0 Tools-Option-Directory; VS 2003/2005 工具-选项-项目和解决方案/项目-VC++目录); lib目录添加为新的库文件目录(VC6.0 Tools-Option-Directory; VS 2003/2005 工具-选项-项目和解决方案/项目-VC++目录)如下图所示。 2 如果一个源文件使用了WinPcap提供的库函数,那么就需要在该文件开始的位置添加pcap.h包含文件(或者在引用的文件中),即#include “pcap.h” 也许会出现下面的错误: fatal error C1083: 无法打开包括文件:“pcap.h”: No such file or directory 这个错误表明找不到pcap.h文件,这个头文件在驱动程序安装完成后也是没有的,它是开发包里面的一个头文件,所以,如果要运行程序还需要到官方网站上去下载WinPcap SDK,并按步骤1添加到项目中。 3 在程序中添加wpcap.lib。如果出现下面错误 error LNK2019: 无法解析的外部符号_pcap_findalldevs_ex,该符号在函数XXX 中被引用,如果发生上面的错误就表明缺少库文件,需要添加wpcap.lib到工程中(VC6.0 Project-Settings-Link-Object/library modules; VS 2003/2005 项目-添加现有项-所有文件)如下图所示: 4 新的版本里WinPcap支持远程数据包获取,所以还应当添加一个头文件remote-ext.h ,即#include remote-ext.h(记住这条语句要放在#include “pcap.h”之后,否则会出错!) 否则会发生下面的错误 error C2065: “PCAP_SRC_IF_STRING”: 未声明的标识符 error C3861: “pcap_findalldevs_ex”: 找不到标识符 error C2065: “PCAP_OPENFLAG_PROMISCUOUS”: 未声明的标识符 error C3861: “pcap_open”: 找不到标识符 5 或者不用添加#include remote-ext.h.在VC.NET提供的IDE环境中,可以通过执行“项目”菜单中的的“属性”进入该项目的属性配置页,通过选择“配置属性”树中的“C/C++预处理哭”选项就增加’WPCAP’和’HAVE_REMOTE’两个标号。如下图所示: 6 如果还有问题,可以到WinPcaP官方网站上找FAQ。 二、WINPCAP编程入门 利用WINPCAP捕获数据包一般要经过以下几个步骤 1、获取网络接口列表? 通常, 一个基于WinPcap的应用程序所要做的第一件事, 就是获得适合的网络接口的列表.pcap_findalldevs()(或者pcap_findalldevs_ex())函数就是干这活的: 这个函数返回一个pcap_if结构的列表, 每个元素都记录了一个接口的信息. 其中, name和description以人类可以阅读的形式, 记录了设备的信息. 2、获取设备的高级信息? WinPcap 也可以为我们提供关于接口的更多信息. 由 pcap_findalldevs() 函数返回的 pcap_if 结构也包含了一个 pcap_addr 结构的列表, 它记录了以下信息:? 1. 接口的地址列表? 2. 接口的掩码列表 (与地址列表一一对应)? 3. 接口的广播地址列表 (与地址列表一一对应)? 4. 目标地址列表 (与地址列表一

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档