libpcap包过滤-pcap_compile()

libpcap包过滤-pcap_compile()
pcap_compile()是⽤来把⽤户输⼊的过滤字符串编译进过滤信息的,这个过滤信息可以决定哪些包是⽤户可获取到
的 。
过滤表达式包含⼀个或多个元素。每个元素通常包含由多个或⼀个被修饰符修饰的id名称或数字,有三种不同的修饰符:小牛血清去蛋白注射液
类型修饰符    说明id属于那种类型。可以⽤的类型修饰符有host,net,port,portrange。例如‘host foo’,
‘net      128.3’, ‘port 20’, ‘por-trange 6000-6008’。如果id没有指定类型,则host是默认。
路径⽅向修饰符  指定id的路径⽅向。可以⽤的路径修饰符有src, dst, src or
dst,srcand dst,  addr1, addr2, addr3,  and  addr4.举例‘src foo’, ‘dst net 128.3’, ‘src  or dst port ftp-data’.如果id没有路径修饰符,默认src or dst。addr1, addr2, addr3, and addr4仅⽤于⽆限⽹络,在链路层,如果是混杂模式,可以⽤inbound,outbound来指定过滤⽅向
协议修饰符      来限制匹配的协议。可以⽤的协议修饰符ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp and udp。举例ether src foo’,‘arp net 128.3’, ‘tcp port 21’, ‘udp portrange 7000-7009’, ‘wlan addr2 0:2:3:4:5:6’. 如果没有制定协议,则默认是所有协议都匹配,⽐如‘src  foo’,ip arp rarp的协议都匹配
fddi协议等同于ether协议,在语法解析器中,fddi与ether含义⼀样,fddi头部信息包含以太⽹源、⽬的地址,还包含包的类型,可以指定fddi头部域的信息来过滤指定的域。fddi头还包含其他的域,但是不能应⽤与过滤。
tr和wlan在过滤解析器中,含义等同于ether。以前版本的fddi头部信息也适⽤于802.11⽆线局域⽹的头。
除了以上三种修饰符,还有⼀些特殊的修饰符和算术运算式:gateway, broadcast, less, greater。如下所⽰算术运算式:      and or not
可以⽤and、or、not来组合复杂的过滤表达式。⽐如‘host foo and not port ftp and not port ftp-data’,如果多个表达式以and、 or、 not来组合,多个表达式有相同的修饰符,则可以省略除第⼀个表达式以外,⽐如‘tcp dst port ftp or ftp-data or domain’等同于‘tcp dst port ftp or tcp dst port ftp-data or tcp dstport domain’
允许的过滤表达式:
dst host host
包的⽬的ip,可以是ip地址也可以是域名
src host host
包的源ip
host host
匹配包的源或则⽬的ip
以上的表达式都可以⽤ip、arp、rarp、ip6,⽐如ip host host,包是ip协议,包的源ip或⽬的ip是host的,如果host 是多播ip地址,那么每个地址都会匹配。
矿灯充电架ether dst ehost法兰防溅罩
匹配以太⽹头的⽬的地址
ether src ehost
震动报警器
匹配以太⽹头的源地址
ether host ehost
匹配以太⽹源或⽬的地址
gateway host
匹配⽹关地址,以太⽹头的⽬的或者源地址是⽹关但不能以ip头的源或⽬的地址为⽹关,⽹关host必须存在于设备的域名解析⽂件中,不适⽤于ipv6
dst net net
匹配范围内包的⽬的ip地址(⼀段范围的ip地址),net可以是⽹络⽂件中的名称,也可以是⼀个⽹ip地址,⼀个ipv4的ip地址可以是以点分制的数字,如192.168.1.1则对应的⽹络掩码是255.255.255.255,192.168.1则对应的⽹络掩码是255.255.255.0,192.168则对应的⽹络掩码是254.254.0.0,ipv6的ip地址必须是完整的,所以ipv6的匹配等同于ip 地址匹配
src net net
匹配范围内包的源ip地址
net net
匹配范围内包的源或者⽬的ip地址
net net mask netmask
匹配指定的ip地址net以及掩码netmask,可以指定src或者dst。不⽀持ipv6
net net/len
匹配指定的ip地址,类似192.168.10.1/24 等同于 192.168.10.1 和掩码254.254.254.0,可以指定src或dst
dst port port三辊轧管机
匹配指定的包的⽬的端port,port可以是数字或者/etc/services ⽂件中的端⼝对应的名称,如果使⽤名称,则只匹配名称对应的端⼝和协议,如果是数字,则只匹配端⼝号
src port port
匹配包的指定源端⼝
port port
匹配源或在⽬的端⼝为port的包
dst portrange port1-port2防静电鞋
匹配⽬的端⼝在port1-port2之间的包
src portrange port1-port2
匹配源端⼝在port1-port2之间的包
portrange port1-port2
匹配源端⼝或⽬的端⼝在port1-port2之间的包
以上关于端⼝和端⼝范围匹配的表达式可以⽤tcp或udp来指定协议
less length
匹配长度⼩于指定的长度length的包
greater length
匹配长度⼤于指定长度length的包
ip proto protocol
匹配协议为protocol的ip包,protocol可以使⼀个数字也可以是字符串(icmp, icmp6, igmp, igrp, pim, ahesp, vrrp, udp, tcp),注意因为tcp udp icmp本⾝是修饰符所以可以前⾯
加⽤反斜杠来表⽰
ip6 proto protocol
匹配协议为protocol的ipv6的包

本文发布于:2024-09-23 17:22:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/211090.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:匹配   过滤   指定   协议   修饰符   地址
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议