BPF过滤语法

Wireshark抓包过滤器语法设置

1. 抓包过滤器

BPF语法(Berkeley Packet Filter)——基于libpcap/wincap库,在抓包的过程中过滤掉某些类型的协议,不抓取过滤掉的协议。(建议在流量特别大的情况下使用)

1.1 语法说明

类型Type: host、net、port
方向Dir: src、dst
协议Proto: ether、ip、tcp、udp、http、ftp
逻辑运算符: &&与、||或、!非

1.2 例子

src host 192.168.1.1 && dst port 80 抓取源地址为192.168.1.1,目的端口为80的流量
host 192.168.1.1 || host 192.168.1.2 抓取192.168.1.1和192.168.1.2的流量
!broadcast 不要抓广播包
过滤MAC地址案例

ether host 00:88:ca:86:f8:od
ether src host 00:88:ca:86:f8:od
ether dst host 00:88:ca:86:f8:od
过滤IP地址案例

host 192.168.1.1
src host 192.168.1.1
dst host 192.168.1.1
过滤端口案例

port 80
! port 80
dst port 80
src port 80
过滤协议案例

arp
icmp
综合过滤案例

host 192.168.1.1 && port 8080

2. 显示过滤器

抓包的时候没有做任何过滤,抓完包后过滤,抓包过滤器语法与显示过滤器语法是不一样的。只需要研究某一种协议,不需要全局流量的,可以使用抓包过滤器。在流量很小的时候建议使用显示过滤器。

2.1 语法说明

比较操作符

支持==、!=、<、>、>=、=等

==    eq   等于   ip.addr == 192.168.0.1  ip.addr eq 192.168.0.1      

!=     ne   不等于 !ip.addr==192.168.0.1 ip.addr!= 192.168.0.1 ip.addr ne 192.168.0.1      

>      gt   大于    frame.len>64  frame.len gt 64      

<      lt   小于   frame.len<1500 frame.len le 1500      

>=    ge   不大于 frame.len >= 64      

<=     le   不小于 frame.len <= 1500          

 is   present 符合某项参数,满足某个条件,或者出现某个现象 http.response          

contains 包含某个字符串   http.host contains cisco            

match   某串字符匹配某个条件 http.host matches www.cicso.com  逻辑关系操作符    

逻辑操作符

&&  and  逻辑与  ip.src==10.0.0.1 and tcp.flags.syn=1    

||  or  逻辑或 ip.addr==10.0.0.1 or ip.addr==10.0.0.2    

 !  not  逻辑非 not arp and not icmp 除了arp和icmp之外的包  

ip.addr != 192.168.0.1 这样的表达式语法正确但是并不起作用,原因是每个IP数据包必定包含两个IP地址,wireshark执行上边的过滤功能时,只要发现源和目的IP有一不为192.168.0.1,就会判定条件为真,正确的应该是 !(ip.addr eq 192.168.0.1)

IP地址

ip.addr、ip.src、ip.dst

端口过滤

tcp.port、tcp.srcport、tcp.dstport、tcp.flag.syn、tcp.flag.ack

协议过滤

arp、ip、icmp、udp、tcp、bootp、dns

2.2 示例

过滤IP地址案例

ip.addr == 192.168.1.1
ip.src == 192.168.1.1
ip.dst == 192.168.1.1
过滤端口案例

tcp.port == 80
tcp.srcport == 80
tcp.dstport == 80
tcp.flags.syn == 1
过滤协议案例

tcp
not http
not arp
综合过滤案例

ip.src == 192.168.1.100 and udp.port == 4000

WireShark出现的常见提示

TCP Out_of_Order的原因分析:
一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元,因为他们可能是由不同的路径到达你的电脑上面。
TCP Retransmission原因分析:
很明显是上面的超时引发的数据重传。
TCP dup ack XXX#X原因分析:
就是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失。
tcp previous segment not captured原因分析
意思就是报文没有捕捉到,出现报文的丢失。
其他规则:https://www.cnblogs.com/strick/p/6261463.html

链接:https://blog.csdn.net/chenfengdejuanlian/article/details/53761004

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值