- 1、本文档共218页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* ether multicast 如果是以太网多播数据包,则为True。 * ip multicast 如果是IP多播数据包,则为True。 * ip6 multicast 如果是IPv6多播数据包,则为True。 * vlan [vlan_id] 如果是IEEE 802.1Q VLAN数据包,则为True。如果定义了vlan_id值,则只有定义了vlan_id数据包的才为True。 * tcp, udp, icmp 此原语等价于ip proto p或者 ip6 proto p。其中p是前面用到的某种协议。 * expr relop expr 如果满足上面的关系式,则为True。其中,relop是,,=,=,=,!= 其中之一;expr是一个数学表达式,包含整数常量、通常的二进制操作符[+,-,*,/,,|]、长度操作符和特定的数据包数据访问标识。如果要访问数据包的内部数据,可以采用下面的语法: * proto [ expr : size ] proto是ether,fddi,tr,ip,arp,rarp,tcp,udp,icmp或者ipv6协议,表示操作的协议层。tcp、udp和其他高层协议类型只适用于IPv4,不适用于IPv6。expr表示协议层的偏移量(byte)。size是一个可选项,表示查看的字节数,缺省值为1。 例如,ether[0] 1 != 0捕获所有多播的数据流。表达式ip[0] 0xf != 5捕获所有带有选项的IP数据包。表达式ip[6:2] 0x1fff = 0捕获没有分段的数据包。tcp[0]表示TCP包头的第一个字节。 原语的组合使用: 否定操作符(! or not); 与操作符( or and); 或操作符(|| or or)。 否定操作优先级最高,与操作和或操作优先级相同,如:not host。 2. 使用Winpcap函数库wpcap.lib的步骤及实例 在Microsoft Visual C++中使用Winpcap函数库wpcap.lib要遵循以下步骤: (1) 编写使用Packet.dll的应用程序,首先需要安装Winpcap网络驱动程序。 (2) 在每个使用Winpcap函数的应用程序源文件的开始处包含文件pcap.h。 (3) 设置Visual C++编程环境链接器(linker)的选项(options),使其包含wpcap.lib函数库文件。wpcap.lib可以在Winpcap开发包(Winpcap Developers Pack)中找到。 设置Visual C++编程环境链接器(linker)的选项(options),使其包含WinSock函数库文件(例如wsock32.lib)。某些Libpcap函数需要WinSock支持。 1) 取得网络设备列表 基于Winpcap应用程序要做的第一件事就是要取得网络设备列表。Libpcap提供函数pcap_findalldevs()来取得网络设备列表,此函数返回一个pcap_if结构的链表,链表中每个节点包含一个网络设备的信息。字段name和description是网络设备的名称和描述。以下程序取得网络设备列表,并显示在屏幕上。 #include pcap.h main() { pcap_if_t *alldevs; pcap_if_t *d; int i = 0; char errbuf[PCAP_ERRBUF_SIZE]; // 错误信息缓存区 // 取得网络设备列表 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); } if(i==0) { printf(\nNo interfaces found! Make sure WinPcap is installed.\n); return; } //释放列表 pcap_freealldevs(alldevs); } 2) 取得网络设备信息 函数pcap_findalldevs()返回的每一个pcap_if结构中,都包含有一列pcap_addr结构。在结构pca
您可能关注的文档
最近下载
- 中央空调系统清洗维修保养合同协议书(详细版).doc
- (ppt)苦菜花.ppt
- 免疫接种必须与选修答案-2024年全国疾控系统“大学习”活动.docx VIP
- (统编2024版)历史七年级上册全册知识点.docx
- 2023-2024在线网课《信息检索与科技写作( 理大)》单元测试考核答案.pdf
- 中医院重点专科儿科三年发展规划.docx
- 天津市河西区2023-2024学年七年级上学期期中语文试题(含答案).docx VIP
- 第九讲种质资源的保存ppt课件-教材.ppt VIP
- YDT 3762-2020 大数据 数据挖掘平台技术要求与测试方法.docx
- 2.1 网络改变世界 作业 初中道德与法治 人教部编版 八年级上册 (2021年).docx
文档评论(0)