目录
Wireshark提供了两种过滤器:
1、捕获过滤器
2、显示过滤器
过滤器具体写法
1、显示过滤器写法
1、过滤值比较符号及表达式之间的组合
2、针对ip的过滤?
3、针对协议的过滤
4、针对端口的过滤(视传输协议而定)
5、针对长度和内容的过滤
6、针对http请求的一些过滤实例。
2、捕捉过滤器写法
1、比较符号
2、常用表达式实例
Wireshark提供了两种过滤器:
1、捕获过滤器
捕获过滤器:在抓包之前就设定好过滤条件,然后只抓取符合条件的数据包。
2、显示过滤器
显示过滤器:在已捕获的数据包集合中设置过滤条件,隐藏不想显示的数据包,只显示符合条件的数据包。
注意:这两种过滤器所使用的语法是完全不同的,想想也知道,捕捉网卡数据的其实并不是Wireshark,而是WinPcap,当然要按WinPcap的规则来,显示过滤器就是Wireshark对已捕捉的数据进行筛选。
使用捕获过滤器的主要原因就是性能。如果你知道并不需要分析某个类型的流量,那么可以简单地使用捕获过滤器过滤掉它,从而节省那些会被用来捕获这些数据包的处理器资源。当处理大量数据的时候,使用捕获过滤器是相当好用的。
Wireshark拦截通过网卡访问的所有数据,前提是没有设置任何代理。 Wireshark不能拦截本地回环访问的请求,即127.0.0.1或者localhost。
过滤器具体写法
1、显示过滤器写法
1、过滤值比较符号及表达式之间的组合
?
2、针对ip的过滤?
ip.src == 192.168.0.1
ip.dst == 192.168.0.1
ip.addr == 192.168.0.1
- 如果想排除以上的数据包,只需要将其用括号囊括,然后使用 "!" 即可
!(ip.addr == 192.168.0.1)
3、针对协议的过滤
- 获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可
http
注意:是否区分大小写?答:区分,只能为小写
http or telnet
not arp 或者 !tcp
4、针对端口的过滤(视传输协议而定)
tcp.port == 80
- 捕获多端口的数据包,可以使用and来连接,下面是捕获高于某端口的表达式(以udp协议为例)
udp.port >= 2048
5、针对长度和内容的过滤
udp.length < 20
http.content_length <=30
http.request.uri matches "user" (请求的uri中包含“user”关键字的)
注意:matches ?后的关键字是不区分大小写 的!
http.request.uri contains "User" (请求的uri中包含“user”关键字的)
注意:contains ?后的关键字是区分大小写 的!
6、针对http请求的一些过滤实例。
- 过滤出请求地址中包含“user”的请求,不包括域名;
http.request.uri contains "User"
http.host==baidu.com
http.host contains "baidu"
http.content_type =="text/html"
http.request.method=="POST"
tcp.port==80
http && tcp.port==80 or tcp.port==5566
http.response.code==302
http.cookie contains "userid"
回到顶部
2、捕捉过滤器写法
在wireshark的工具栏中点击捕获 ?→捕获过滤器 ,可以看到一些过滤器的写法,如下图:
1、比较符号
与:&&或者and
或:||或者or
非:!或者not
实例:
src or dst portrange 6000-8000 && tcp or ip6
2、常用表达式实例
src www.baidu.com
dst www.baidu.com
dst post 80
udp
|