- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Phinecos(洞庭散人)
专注于开源技术的研究与应用
Winpcap网络开发库入门
??????Winpcap
?????
??????首先到/install/default.htm下载安装winpcap?驱动和DLL组件。
??????然后到/devel.htm.下载winpcap开发包,解压到指定目录,这里我解压到C:\WpdPack_4_0_2\WpdPack,可以看到里面包含了:Lib,Include,文档和示例程序。
首先创建一个C++控制台程序,设置如下:
1)??“Configuration Properties - C/C++ - General”中,在Additional Include Directories加入Include路径(“C:\WpdPack_4_0_2\WpdPack\Include”)。
2)???“Configuration Properties - Linker - General”?中,在Additional Library Directories中加入?winpcap?库文件路径?( “C:\WpdPack_4_0_2\WpdPack\Lib” )?。
3)??“Configuration Properties - Linker - Input”中,?Additional Dependencies?加入用到的两个winpcap?库文件(wpcap.lib?and?Packet.lib?)?。
4)??Winpcap的远程访问,必须在预处理器中加入HAVE_REMOTE
示例程序1??获取适配器列表
#include?pcap.hint?_tmain(int?argc,?_TCHAR*?argv[]){????pcap_if_t?*?allAdapters;//适配器列表????pcap_if_t?*?adapter;????char?errorBuffer[?PCAP_ERRBUF_SIZE?];//错误信息缓冲区????if(?pcap_findalldevs_ex(?PCAP_SRC_IF_STRING,?NULL,?????????????????allAdapters,?errorBuffer?)?==?-1?)????{//检索机器连接的所有网络适配器????????fprintf(?stderr,?Error?in?pcap_findalldevs_ex?function:?%s\n,?errorBuffer?);????????return?-1;????}????if(?allAdapters?==?NULL?)????{//不存在人任何适配器????????printf(?\nNo?adapters?found!?Make?sure?WinPcap?is?installed.\n?);????????return?0;????}????int?crtAdapter?=?0;????for(?adapter?=?allAdapters;?adapter?!=?NULL;?adapter?=?adapter-next)????{//遍历输入适配器信息(名称和描述信息)????????printf(?\n%d.%s?,?++crtAdapter,?adapter-name?);????????printf(?--?%s\n,?adapter-description?);????}????printf(?\n?);????pcap_freealldevs(?allAdapters?);//释放适配器列表????system(?PAUSE?);????return?0;}
2?打开指定适配器并捕获数据包
#include?pcap.hint?_tmain(int?argc,?_TCHAR*?argv[]){????pcap_if_t?*?allAdapters;//适配器列表????pcap_if_t?*?adapter;????pcap_t???????????*?adapterHandle;//适配器句柄????struct?pcap_pkthdr?*?packetHeader;????const?u_char???????*?packetData;????char?errorBuffer[?PCAP_ERRBUF_SIZE?];//错误信息缓冲区????if(?pcap_findalldevs_ex(?PCAP_SRC_IF_STRING,?NULL,?????????????????allAdapters,?errorBuffer?)?==?-1?)
文档评论(0)