Winpcap常用函数.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文档。上传文档
查看更多
Winpcap常用函数

Winpcap常用函数 最近在看WINPCAP,将其库函数总结如下 1. int pcap_findalldevs(pcap_if_t **, char *) ??? 说明:用来获得网卡的列表 ??? 参数:指向pcap_if_t**类型的列表的指针的指针; char型指针,当打开列表错误时返回错误信息 ??? 返回值: 为int型,当显示列表失败时返回-1 pcap_if_t 是pcap_if 重命名而来:typedef struct pcap_if pcap_if_t; pcap_if结构体如下: struct pcap_if { ??????? struct pcap_if *next;?????????????? ??????? char *name;??????????????? ??????? char *description;??????? ??????? struct pcap_addr *addresses;??? //pcap_addr 结构体 ??????? bpf_u_int32 flags;??????? }; pcap_addr 结构体如下: struct pcap_addr { ???????? struct pcap_addr *next; ???????? struct sockaddr *addr;??????????????? ???????? struct sockaddr *netmask;??????? ??????? struct sockaddr *broadaddr;??????? ??????? struct sockaddr *dstaddr;??????? }; 举例: ??? pcap_if_t *alldevs; ??? pcap_if_t *d; ??? char errbuf[64]; ??? if (pcap_findalldevs(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); } 用pcap_findalldevs不能获得网卡的MAC,有两种方法可以实现,一、向自己发送arp包,二、使用IPHelp的API可以获得。 2. void?? pcap_freealldevs(pcap_if_t *) 说明:与int pcap_findalldevs(pcap_if_t **, char *)配套使用,当不再需要网卡列表时,用此函数free释放空间 参数:打开网卡列表时申请的pcap_if_t型的指针 举例: ?? pcap_freealldevs(alldevs); 3. pcap_t??? *pcap_open_live(const char * device, int snaplen, int promisc, int to_ms, char ebuf *) 说明:被用来得到一个包抓取得描述符 参数: ????? device是一个指出要抓取的网络设备的字符串。 ????? snaplen指明最大可抓取的字节长度。 ????? promisc置位表明该接口要被设置成混杂模式。 ????? to_ms以毫秒为单位设置超时时间。当在超时时间内网卡上没有数据到来时对网卡的读操作将返回(如?? pcap_dispatch() or pcap_next_ex()等函数)。 ???? ebuf被用来存放当pcap_open_live()调用失败时,返回的错误字符串。 ??? 返回值: pcap_t型的指针,供pcap_dispatch() or pcap_next_ex()等函数调用。 pcap_t的结构体: struct pcap { ???? #ifdef WIN32 ??????? ADAPTER *adapter; ??????? LPPACKET Packet; ??????? int timeout; ??????? int nonblock; ???? #else ??????? int fd; ??? #endif??????????? ??????? int snapshot; ??????? int linkty

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档