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