BPF(Berkeley Packet Filter)伯克利抓包过滤器实践

本文详细介绍了BPF(Berkeley Packet Filter)的基本概念、过滤器语法,包括原语、限定符、运算符及其在wireshark和tcpdump中的应用。通过实例展示了如何使用BPF来过滤特定协议、主机、端口和TCP标志,以及如何构造复杂表达式进行抓包过滤。
摘要由CSDN通过智能技术生成

BPF(Berkeley Packet Filter)伯克利抓包过滤器实践

BPF Berkeley Packet Filter伯克利抓包过滤器是驱动级抓包过滤接口,多数抓包工具都支持该语法。

过滤器就是一个表达式,由原语,运算符组成。

原语: 原语是限定符qualifiers(有时也称为keywords)+ID(字符或数字),如 host www.baidu.com, port 80
限定符:
type

  • host, net/mask,port, portrange

dir

  • dst, src, dst or src[缺省], dst and src;

protocol

  • ether,arp,icmp,ip,ip6, tcp, udp等底层协议,但不支持如dns, http等应用层协议。

其它

  • gateway, broadcast, multicast, less, greater
  • gateway host指数据包以host为网关, wireshark不支持

示例:
host www.baidu.com #某个主机
net 192.168.31.0/24 #一个CIDR格式网段
net 192.168.31.0 mask 255.255.255.0 #一个net/mask格式网段
注:wireshark中认为net 192.168.31.21/24是无效的bpf语法,而net 192.168.31.21/32是正确的,net/mask类似
host www.baidu.com and port 80 or 443
等效于host www.baidu.com and port 80 or port 443,表达的意思是主机为www.baidu.com且端口为80或443
host www.jd.com and portrange 80-443
net 192 表示以192开始的网段,mask是255.0.0.0

多个限定词可以叠加如tcp port 80

运算符:
and &&
or ||
not !
注:否定运算符有较高的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值