首页 pcap过滤规则格式

pcap过滤规则格式

举报
开通vip

pcap过滤规则格式函数名称:intpcap_compile(pcap_t*p,structbpf_program*fp,char*str,intoptimize,bpf_u_int32netmask)函数功能:该函数用于将str指定的规则整合到fp过滤程序中去,并生成过滤程序入口地址,用于过滤选择期望的数据报。参数说明:pcap_t*p:pcap_open_live返回的数据报捕获的指针;structbpf_program*fp:指向一个子函数用于过滤,在pcap_compile()函数中被赋值;char*str:该字符串规定过滤规...

pcap过滤规则格式
函数名称:intpcap_compile(pcap_t*p,structbpf_program*fp,char*str,intoptimize,bpf_u_int32netmask)函数功能:该函数用于将str指定的规则整合到fp过滤程序中去,并生成过滤程序入口地址,用于过滤选择期望的数据报。参数说明:pcap_t*p:pcap_open_live返回的数据报捕获的指针;structbpf_program*fp:指向一个子函数用于过滤,在pcap_compile()函数中被赋值;char*str:该字符串规定过滤规则;intoptimize:规定了在结果代码上的选择是否被执行;bpf_u_int32netmask:该网卡的子网掩码,可以通过pcap_lookupnet()获取;返回值:  如果成功执行,返回0,否则返回-1;过滤规则由一个或多个原语(primitive)组成,如果为””则表示不进行任何过滤.原语通常由一个标识(id,名称或数字),和标识前面的一个或多个修饰子(qualifier)组成.修饰子有三种不同的类型:type类型修饰子指出标识名称或标识数字代表什么类型的东西.能够使用的类型有host,net和port.例如,`hostfoo',`net128.3',`port20'.假如不指定类型修饰子,就使用缺省的host.dir方向修饰子指出相对于标识的传输方向(数据是传入还是传出标识).能够使用的方向有src,dst,srcordst和srcanddst.例如,`srcfoo',`dstnet128.3',`srcordstportftp-data'.假如不指定方向修饰子,就使用缺省的srcordst.对于`null'链路层(就是说象slip之类的点到点协议),用inbound和outbound修饰子指定所需的传输方向.proto协议修饰子需要匹配指定的协议.能够使用的协议有:ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp和udp.例如,`ethersrcfoo',`arpnet128.3',`tcpport21'.假如不指定协议修饰子,就使用任何符合类型的协议.例如,`srcfoo'指`(ip或arp或rarp)srcfoo'(注意后者不符合语法),`netbar'指`(ip或arp或rarp)netbar',`port53'指`(tcp或udp)port53'.[`fddi'实际上是`ether'的别名; 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 器把他们视为``用在指定网络接口上的数据链路层.''FDDI报头包含类似于以太协议的源目地址,而且通常包含类似于以太协议的报文类型,因此您能够过滤FDDI域,就象分析以太协议相同.FDDI报头也包含其他域,但是您不能在过滤器表达式里显式描述.]作为上述的补充,有一些特别的`原语'关键字,他们不同于上面的模式:gateway,broadcast,less,greater和数学表达式.这些在后面有叙述.更复杂的过滤器表达式能够通过and,or和not连接原语来组建.例如,`hostfooandnotportftpandnotportftp-data'.为了少敲点键,能够忽略相同的修饰子.例如,`tcpdstportftporftp-dataordomain'实际上就是`tcpdstportftportcpdstportftp-dataortcpdstportdomain'.允许的原语有:dsthosthost假如报文中IP的目的地址域是host,则逻辑为真.host既能够是地址,也能够是主机名.srchosthost假如报文中IP的源地址域是host,则逻辑为真.hosthost假如报文中IP的源地址域或目的地址域是host,则逻辑为真.上面任何的host表达式都能够加上ip,arp,或rarp关键字做前缀,就象:iphosthost他等价于:etherproto\ipandhosthost假如host是拥有多个IP地址的主机名,他的每个地址都会被查验.etherdstehost假如报文的以太目的地址是ehost,则逻辑为真.Ehost既能够是名字(/etc/ethers里有),也能够是数字(有关数字格式另见ethers(3N)).ethersrcehost假如报文的以太源地址是ehost,则逻辑为真.etherhostehost假如报文的以太源地址或以太目的地址是ehost,则逻辑为真.gatewayhost假如报文把host当做网关,则逻辑为真.也就是说,报文的以太源或目的地址是host,但是IP的源目地址都不是host.host必须是个主机名,而且必须存在/etc/hosts和/etc/ethers中.(一个等价的表达式是etherhostehostandnothosthost对于host/ehost,他既能够是名字,也能够是数字.)dstnetnet假如报文的IP目的地址属于网络号net,则逻辑为真.net既能够是名字(存在/etc/networks中),也能够是网络号.(详见networks(4)).srcnetnet假如报文的IP源地址属于网络号net,则逻辑为真.netnet假如报文的IP源地址或目的地址属于网络号net,则逻辑为真.netnetmaskmask假如IP地址匹配指定网络掩码(netmask)的net,则逻辑为真.本原语能够用src或dst修饰.netnet/len假如IP地址匹配指定网络掩码的net,则逻辑为真,掩码的有效位宽为len.本原语能够用src或dst修饰.dstportport假如报文是ip/tcp或ip/udp,并且目的端口是port,则逻辑为真.port是个数字,也能够是/etc/services中说明过的名字(参看tcp(4P)和udp(4P)).假如使用名字,则检查端口号和协议.假如使用数字,或有二义的名字,则只检查端口号(例如,dstport513将显示tcp/login的数据和udp/who的数据,而portdomain将显示tcp/domain和udp/domain的数据).srcportport假如报文的源端口号是port,则逻辑为真.portport假如报文的源端口或目的端口是port,则逻辑为真.上述的任意一个端口表达式都能够用关键字tcp或udp做前缀,就象:tcpsrcportport他只匹配源端口是port的TCP报文.lesslength假如报文的长度小于等于length,则逻辑为真.他等同于:len<=length.greaterlength假如报文的长度大于等于length,则逻辑为真.他等同于:len>=length.ipprotoprotocol假如报文是IP数据报(参见ip(4P)),其 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 的协议类型是protocol,则逻辑为真.Protocol能够是数字,也能够是下列名称中的一个:icmp,igrp,udp,nd,或tcp.注意这些标识符tcp,udp,和icmp也同样是关键字,所以必须用反斜杠(\)转义,在C-shell中应该是\.etherbroadcast假如报文是以太广播报文,则逻辑为真.关键字ether是可选的.ipbroadcast假如报文是IP广播报文,则逻辑为真.Tcpdump检查全0和全1广播约定,并且检查本地的子网掩码.ethermulticast假如报文是以太多目传送报文(multicast),则逻辑为真.关键字ether是可选的.这实际上是`ether[0]&1!=0'的简写.ipmulticast假如报文是IP多目传送报文,则逻辑为真.etherprotoprotocol假如报文协议属于以太类型的protocol,则逻辑为真.Protocol能够是数字,也能够是名字,如ip,arp,或rarp.注意这些标识符也是关键字,所以必须用反斜杠(\)转义.[假如是FDDI(例如,`fddiprotocolarp'),协议标识来自802.2逻辑链路控制(LLC)报头,他通常位于FDDI报头的顶层.当根据协议标识过滤报文时,Tcpdump假设任何的FDDI报文含有LLC报头,而且LLC报头用的是SNAP格式.]decnetsrchost假如DECNET的源地址是host,则逻辑为真,该主机地址的形式可能是``10.123'',或是DECNET主机名.[只有配置成运行DECNET的Ultrix系统支持DECNET主机名.]decnetdsthost假如DECNET的目的地址是host,则逻辑为真.decnethosthost假如DECNET的源地址或目的地址是host,则逻辑为真.ip,arp,rarp,decnet是:etherprotop的简写形式,其中p为上述协议的一种.lat,moprc,mopdl是:etherprotop的简写形式,其中p为上述协议的一种.注意tcpdump现在不知道如何分析这些协议.tcp,udp,icmp是:ipprotop的简写形式,其中p为上述协议的一种.exprrelopexpr假如这个关系成立,则逻辑为真,其中relop是>,<,>=,<=,=,!=之一,expr是数学表达式,由常整数( 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 C语法形式),普通的二进制运算符[,-,*,/,&,|],一个长度运算符,和指定的报文数据访问算符组成.要访问报文内的数据,使用下面的语法:proto[expr:size]Proto是ether,fddi,ip,arp,rarp,tcp,udp,oricmp之一,同时也指出了下标操作的协议层.expr给出字节单位的偏移量,该偏移量相对于指定的协议层.Size是可选项,指出感兴趣的字节数;他能够是1,2,4,缺省为1字节.由关键字len给出的长度运算符指明报文的长度.例如,`ether[0]&1!=0'捕获任何的多目传送报文.表达式`ip[0]&0xf!=5'捕获任何带可选域的IP报文.表达式`ip[6:2]&0x1fff=0'只捕获未分片和片偏移为0的数据报.这种检查隐含在tcp和udp下标操作中.例如,tcp[0]一定是TCP报头的第一个字节,而不是其中某个IP片的第一个字节.原语能够用下述方法结合使用:园括弧括起来的原语和操作符(园括弧在Shell中有专用,所以必须转义).取反操作(`!'or`not').连结操作(`&&'or`and').或操作(`||'or`or').取反操作有最高优先级.或操作和连结操作有相同的优先级,运算时从左到右结合.注意连结操作需要显式的and算符,而不是并列放置.假如给出标识符,但没给关键字,那么暗指最近使用的关键字.例如,nothostvsandace作为nothostvsandhostace的简写形式,不应该和not(hostvsorace)混淆.表达式参数能够作为单个参数传给tcpdump,也能够作为复合参数,后者更方便一些.一般说来,假如表达式包含Shell元字符(metacharacter),传递单个括起来的参数要容易一些.复合参数在被解析前用空格联接一起.示例(EXAMPLES)显示任何进出sundown的报文:hostsundown显示helios和主机hot,ace之间的报文传送:hostheliosand\(hotorace\)显示ace和除了helios以外的任何主机的IP报文:iphostaceandnothelios显示本地的主机和Berkeley的主机之间的网络数据:netucb-ether显示任何通过网关snup的ftp报文(注意这个表达式被单引号括起,防止shell解释园括弧):gatewaysnupand(portftporftp-data)'显示既不是来自本地主机,也不是传往本地主机的网络数据(假如您把网关通往某个其他网络,这个做法将不会把数据发往您的本地网络).ipandnotnetlocalnet显示每个TCP会话的起始和结束报文(SYN和FIN报文),而且会话方中有一个远程主机.tcp[13]&3!=0andnotsrcanddstnetlocalnet'显示经过网关snup中大于576字节的IP数据报:gatewaysnupandip[2:2]>576'显示IP广播或多目传送的数据报,这些报文不是通过以太网的广播或多目传送形式传送的:ether[0]&1=0andip[16]>=224'显示任何不是回响请求/应答的ICMP报文(也就是说,不是ping报文):icmp[0]!=8andicmp[0]!=0"
本文档为【pcap过滤规则格式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_686908
暂无简介~
格式:doc
大小:30KB
软件:Word
页数:13
分类:
上传时间:2022-07-22
浏览量:13