WinPcapxuexi.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WinPcapxuexiWinPcapxuexi

循序渐进学WinPcap去年开始学习winpcap,当时翻译了一点,现在打算把这个工作完成了。我的水平比较差,翻译的很不到位,不过对于初次接触winpcap的人应该还是有点帮助吧。不过不知道我这样来翻译是不是侵犯了人家的版权?如果有这个嫌疑,请大家告诉我,我对这方面的法律不是很了解。建议对这方面有兴趣的人还是去 下载文档和资料看。 下面开始吧: WinPcap tutorial: a step by step guide to using WinPcap 详细说明 ?这部分展示了怎样使用WinPcap API。这个教程通过一系列的课程,从基本的函数(取得网卡列表,开始抓包,等等)到最高级的应用(处理数据包包发送队列和统计网络流量),一步一步地教会读者如何用WinPcap来编程。 ?这里提供了几个虽然简单但却完整的程序段作为参考:所有的源代码都有其余部分的链接,只需要点击一下函数和数据结构就可以跳转到相应的文档。 ?这些例子都是使用c语言写的,所以在读本教程前要了解一些基本的c语言的知识。而且,这是一个关于处理原始网络包的库的教程,所以假定读者具有良好的网络和网络协议方面的知识。 WinPcap tutorial: a step by step guide to using WinPcap(1) 获取网络设备列表 ?基本上所有基于Winpcap的应用程序所做的第一件事情都是获取一个已经绑定的网卡列表。为此,libcap和winpcap都提供了pcap_findalldevs_ex()函数:这个函数返回一个指向pcap_if结构的链表,其中的每一项都包含了一个已经绑定的适配器的全部信息。其中name和description这两项分别包含了相应设备的名称和描述。 ?下面的代码取得适配器列表并在屏幕上显示出来,如果适配器没有被发现就把显示错误。 #i nclude pcap.h main() { ??? pcap_if_t *alldevs; ??? pcap_if_t *d; ??? int i=0; ??? char errbuf[PCAP_ERRBUF_SIZE]; ??? ??? /* 取得本机的网络设备列表 */ ??? if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* 这个参数在这里不需要 */, alldevs, errbuf) == -1) ??? { ??????? fprintf(stderr,Error in pcap_findalldevs_ex: %s\n, errbuf); ??????? exit(1); ??? } ??? ??? /* 显示列表 */ ??? for(d= alldevs; d != NULL; 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; ??? } ??? /* We dont need any more the device list. Free it */ ??? pcap_freealldevs(alldevs); } 关于这段代码的说明。 ?首先,就象其他的libpcap函数,pcap_findalldevs_ex()有一个errbuf参数。如果发生错误,libcap就把一个错误说明放到这个参数指向的字符串中。 ?其次,并不是所有的操作系统都支持libpcap提供的网络接口描述,因此如果我们想写一个可移植的程序,我们必须考虑description为null的情况:这个时候我们就输出字符串No description available 。 ?最后要提醒一下:一旦我们完成了这些动作,就应该释放用pcap_freealldevs()列表。 让我们编译并运行这段简单的代码。在unix或者cygwin中编译的话,打入下面的命令: gcc -o testaprog testprog.c -lpcap ?在windows中,你需要创建一个project,照着手册中的Using WinPcap in your programs 那一章做就可以了。但是,我们建议你

文档评论(0)

enxyuio + 关注
文档贡献者

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

1亿VIP精品文档

相关文档