- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.3.6 过滤数据包 1.pcap_compile()函数 2.pcap_setfilter()函数 1.pcap_compile()函数 pcap_compile()函数将一个高层的布尔过滤表达式编译成一个能够被过滤引擎所解释的低层字节码,函数原型如下: ? int pcap_compile(pcap_t* p, struct bpf_program* fp, char* str, int optimize, bpf_u_int32 netmask); 参数说明 p,指定一个打开的WinPcap会话,并在该会话中采集数据包。调用pcap_open()函数打开与网络适配器绑定的设备,可以返回WinPcap会话句柄pcap_t。 fp,指向bpf_program结构体的指针,在调用pcap_compile()函数时被赋值,可以为pcap_setfilter()传递过滤信息。 str,指定要保留的数据包协议的字符串,例如,设置该参数为ip and tcp表示保留IP数据包和TCP数据包。 optimize,用于控制结果代码的优化。 netmask,指定本地网络的子网掩码。 如果发生错误,则返回-1;否则返回0。 2.pcap_setfilter()函数 pcap_setfilter()函数将一个过滤器与内核捕获会话向关联。当pcap_setfilter()被调用时,这个过滤器将被应用到来自网络的所有数据包,并且所有符合要求的数据包(即那些经过过滤器以后,布尔表达式为真的包)将会立即复制给应用程序。函数原型如下: ? int pcap_setfilter(pcap_t *p, struct bpf_program *fp) ? 参数说明如下: p,指定一个打开的WinPcap会话,并在该会话中采集数据包。调用pcap_open()函数打开与网络适配器绑定的设备,可以返回WinPcap会话句柄pcap_t。 fp,指向bpf_program结构体的指针,通常取自pcap_compile()函数调用,可以为pcap_setfilter()传递过滤信息。 如果发生错误,则返回-1;否则返回0。 过滤数据包的代码片段 if (d-addresses != NULL) /* 获取接口第一个地址的掩码 */ netmask=((struct sockaddr_in *)(d-addresses-netmask))-sin_addr.S_un.S_addr; else /* 如果这个接口没有地址,那么我们假设这个接口在C类网络中 */ netmask=0xffffff; // 编译过滤器 if (pcap_compile(adhandle, fcode, ip and tcp, 1, netmask) 0) { fprintf(stderr,\nUnable to compile the packet filter. Check the syntax.\n); /* 释放设备列表 */ pcap_freealldevs(alldevs); return -1; } // 设置过滤器 if (pcap_setfilter(adhandle, fcode) 0) { fprintf(stderr,\nError setting the filter.\n); /* 释放设备列表 */ pcap_freealldevs(alldevs); return -1; } 9.3.7 分析数据包 【例9.5】通过实例演示如何对捕获到的数据包首部进行解析,并打印网络中传输的UDP数据包信息。项目的名称为UDPdump。 1.头文件 2.ip_address结构体 3.ip_header结构体 4.udp_header结构体 5.回调函数 6.主函数 1.头文件 #include stdafx.h #include pcap.h #include remote-ext.h 2.ip_address结构体 ip_address结构体用于保存4个字节的IP地址,代码如下: ? typedef struct ip_address{ u_char byte1; u_char byte2; u_char byte3; u_char byte4; }ip_address; 3.ip_header结构体 ip_header结构体中保存IPv4的首部,代码如下:? typedef struct ip_header{ u_ch
您可能关注的文档
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目2 安装与配置Hyper V服务器.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目3 管理域和活动目录.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目4 管理用户和组.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目5 管理存储设备.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目6 配置与管理打印服务器.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目7 配置与管理DNS服务器.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目8 配置与管理DHCP服务器.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目10 配置与管理WINS服务器.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目12 监测网络系统与优化性能.ppt
- Windows Server配置管理项目实训教程(第二版)电子教案&习题答案平寒 项目13 安全管理Windows Server 2008.ppt
- Windows网络编程 教学课件 作者 罗莉琴 詹祖桥 第10章.ppt
- Windows网络编程 教学课件 作者 罗莉琴 詹祖桥 第11章.ppt
- Windows网络编程 习题答案作者 罗莉琴 詹祖桥 练习题参考答案.doc
- Windows网络程序设计(夏靖波) 第1章.ppt
- Windows网络程序设计(夏靖波) 第2章.ppt
- Windows网络程序设计(夏靖波) 第4章.ppt
- Windows网络程序设计(夏靖波) 第5章.ppt
- Windows网络程序设计(夏靖波) 第6章.ppt
- Windows网络程序设计(夏靖波) 封面及目录.ppt
- Windows系统编程 教学课件 作者 李晓黎 第1章.ppt
最近下载
- 2025年执业药师之西药学专业一模考预测题库(夺冠系列).docx VIP
- ISO 15614-13 2023 金属材料焊接工艺规程及评定 电阻对焊和闪光焊(中文版).pdf
- 过敏性休克抢救指南2025版.docx
- 扩张型心肌病的护理查房课件.pptx VIP
- 第一章 食品工艺学导论.ppt VIP
- 系统性红斑狼疮(共44张PPT).pptx VIP
- 3.1 标志设计 (课件)人教版七年级美术上册.pptx VIP
- genesis2000脚本编写,Perl╱TK常见问答中文版.pdf VIP
- 2024《广西农产品电商物流SWOT-PEST分析及发展策略研究(数据图表论文)》16000字.docx VIP
- 剑桥国际少儿英语KB1第1-12单元文本-(英汉版).pdf VIP
文档评论(0)