这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » Ethereal支持非常丰富的过滤器 filters

共1条 1/1 1 跳转至

Ethereal支持非常丰富的过滤器 filters

工程师
2014-09-28 19:56:55     打赏

如同Tcpdump一样,Ethereal支持非常丰富的过滤器。过滤器分为两类,一类是抓包过滤器(capture 
filter)
,当网络流量很大时,可以非常有效地过滤噪音数据;另外一类是显示过滤器(display 
filter), 
可以从你抓到的所有数据包中过滤噪音数据。事实上,由于好的过滤器需要非常好的网络知识,所以除非非常需要,一半可以不作过滤;我自己比较喜欢在抓取的时候不设过滤器,然后利用简单的display 
filter
。建议初学者避免使用过滤器。顺便说一句,etherealcapture 
filter
display 
filter
语法不相同,capture 
filter
的语法可以参照tcpdump的语法。
 






 




事实上,Ethereal本身并不能抓包,它只能用来解析数据包;要抓取数据包,它需要借助于PCapPcapwindows下面的实现称作Winpcap,现在最高的稳定版本是3.0。在Linux下面,Pcap一般都已经被默认安装;






 




常用的Capture 
Filter 






 




常用的Display 
Filter 





1. 操作符





    eq, ==    
Equal 





    ne, !=    
Not Equal 





    gt, >     Greater Than 





    lt, <     Less Than 





    ge, >=    Greater than or Equal to 





le, 
<=    Less than or Equal to 





举例: 





    Udp.port == 10002 





sip.Method 
== INVITE 





2. 
搜索操作 





    contains  
   
协议,包,包含指定内容 





matches     
 Perl
标准表达式 





举例: 





    sip contains INVITE 这个将列出所有SIP包中含有INVITE字符的包; 





wsp.user_agent matches "(?i)cldc" 
查找wsp.user_agent中含有cldc字符的包,并且不区分大小写。(?option)这个表达式是PERL表达式,不是所有的ethereal版本都支持的,使用前检查自己的版本是否包含“with the PCRE 
library
”;


3.常见关键词 






ip 





eth 





udp 





tcp 





http 





举例: 





.pkt_len 
> 100 
包的数据长度大于100的包


ip.src == 192.168.214.12 源地址是192.168.214.12


ip.dst == 
www.yahoo.com
目标地址是www.yahoo.com的包


ip.addr == 129.111.0.0/16 地址范围在129.111.*.*子网的包,类似于capture filterhost


http.request.method == "HEAD" HTTP包中查找request命令含HEAD的包


http.request.method == "\x48EAD" 
和上面的一样,只是使用\x48来表示‘H


4. 数组操作 




  [i:j]    i = 起点, j = 长度


  [i-j]    i = 起点, j = 末点包含.


  [i]      i = 起点长度1


  [:j]     起点等于 0, 长度= j


  [i:]     起点 = i, 至最后


还是直接举例吧:


eth.src[0:3] == 00:00:83  以太网地址的前3


http.content_type[0:4] == "text"   content_type的前四位


[-4:4] == 0.1.2.3    起点为负表示终点-4 长度4位,就是末四位啦,怎么样够灵活吧~



5.逻辑操作 





     and, &&   Logical AND 





    or,  
||   Logical OR 





not, 
!    Logical NOT 





这个我就不多举例啦,应该都理解的J 





6.位操作 





bitwise_and, 
&      Bitwise 
AND


举例:


tcp.flags & 0x02           过滤所有的TCP SYN


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]