- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
libpcap的函数
libpcap的数据类型定义:
struct pcap_addr: 网卡地址描述
{
pcap_addr * next;
sockaddr * addr;
sockaddr * netmask;
sockaddr *broadaddr;
sockaddr *dstaddr;
};
2. pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf) 获得用于捕获网络数据包的数据包捕获描述字。device参数为指定打开的网络设备名。snaplen参数定义捕获数据的最大字节数。promisc指定是否将网络接口置于混杂模式。to_ms参数指定超时时间(毫秒)。 ebuf参数则仅在pcap_open_live()函数出错返回NULL时用于传递错误消息。
3. pcap_t *pcap_open_offline(char *fname, char *ebuf) 打开以前保存捕获数据包的文件,用于读取。fname参数指定打开的文件名。该文件中的数据格式与tcpdump和tcpslice兼容。-为标准输入。ebuf参数则仅在pcap_open_offline()函数出错返回NULL时用于传递错误消息。
4. pcap_dumper_t *pcap_dump_open(pcap_t *p, char *fname) 打开用于保存捕获数据包的文件,用于写入。fname参数为-时表示标准输出。出错时返回NULL。p参数为调用pcap_open_offline()或 pcap_open_live()函数后返回的pcap结构指针。fname参数指定打开的文件名。如果返回NULL,则可调用pcap_geterr()函数获取错误消息。
5. char *pcap_lookupdev(char *errbuf) 用于返回可被pcap_open_live()或pcap_lookupnet()函数调用的网络设备名指针。如果函数出错,则返回NULL,同时errbuf中存放相关的错误消息。
6. int pcap_lookupnet(char *device, bpf_u_int32 *netp, bpf_u_int32 *maskp, char *errbuf) 获得指定网络设备的网络号和掩码。netp参数和maskp参数都是 bpf_u_int32指针。如果函数出错,则返回-1,同时errbuf中存放相关的错误消息。
7. int pcap_dispatch(pcap_t *p, int cnt, pcap_handler callback, u_char *user) 捕获并处理数据包。cnt参数指定函数返回前所处理数据包的最大值。 cnt=-1表示在一个缓冲区中处理所有的数据包。cnt=0表示处理所有数据包,直到产生以下错误之一:读取到EOF;超时读取。callback 参数指定一个带有三个参数的回调函数,这三个参数为:一个从 pcap_dispatch()函数传递过来的u_char指针,一个pcap_pkthdr结构的指针,和一个数据包大小的u_char指针。如果成功则返回读取到的字节数。读取到EOF时则返回零值。出错时则返回-1,此时可调用 pcap_perror()或pcap_geterr()函数获取错误消息。
8. int pcap_loop(pcap_t *p, int cnt, pcap_handler callback, u_char *user) 功能基本与pcap_dispatch()函数相同,只不过此函数在cnt个数据包被处理或出现错误时才返回,但读取超时不会返回。而如果为 pcap_open_live()函数指定了一个非零值的超时设置,然后调用 pcap_dispatch()函数,则当超时发生时pcap_dispatch()函数会返回。 cnt参数为负值时pcap_loop()函数将始终循环运行,除非出现错误。
9. void pcap_dump(u_char *user, struct pcap_pkthdr *h, u_char *sp) 向调用pcap_dump_open()函数打开的文件输出一个数据包。该函数可作为pcap_dispatch()函数的回调函数。
10. int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 netmask) 将str参数指定的字符串编译到过滤程序中。fp是一个bpf_program结构的指针,在pcap_compile()函数中被赋值。optim
您可能关注的文档
- 质量管理概论----4-5.ppt
- 发动机实训室工具(改后).doc
- 安全技术交底制度2011.09.06.doc
- 安全生产责任制-sun.doc
- 数科院暑期社会实践简报1.doc
- 西方美术名作赏析-宗教.ppt
- 管理人员履责管理办法.doc
- 2013驾考真题03.doc
- 教你用Windows7使电脑成为WiFi热点.doc
- 外研社(三年级起)三年级英语下册第四模块课件42.ppt
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
文档评论(0)