wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)

本文非笔者原著,从网络上检索得到,原始出处不可考,再次对原作者表示感谢!


wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)

1.   关键字

“与”:“eq” “==”等同,可以使用 “and” 表示并且,

“或”:“or”表示或者。

“非”:“!" "not” 都表示取反。

多组条件联合过滤数据包的命令,就是通过每个单个的条件命令与关键字“与或非”的组合实现的。

 

2.   针对ip的过滤

针对wireshark最常用的自然是针对IP地址的过滤。其中有几种情况:

  (1)对源地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包。

        表达式为:ip.src == 192.168.0.1

  (2)对目的地址为192.168.0.1的包的过滤,即抓取目的地址满足要求的包。

        表达式为:ip.dst == 192.168.0.1

  (3)对源或者目的地址为192.168.0.1的包的过滤,即抓取满足源或者目的地址的ip地址是192.168.0.1的包。

        表达式为:ip.addr == 192.168.0.1,本表达式的等价表达式为

 ip.src == 192.168.0.1or ip.dst == 192.168.0.1

  (4)要排除以上的数据包,我们只需要将其用括号囊括,然后使用 "!" 即可。

        表达式为:!(表达式)

 

3.   针对协议的过滤

  (1)仅仅需要捕获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可。

               表达式为:http

               问题:是否区分大小写?答:区分,只能为小写

  (2)需要捕获多种协议的数据包,也只需对协议进行逻辑组合即可。

        表达式为:http or telnet (多种协议加上逻辑符号的组合即可)

  (3)排除某种协议的数据包

        表达式为:not arp   或者   !tcp

 

4.   针对端口的过滤(视传输协议而定)

  (1)捕获某一端口的数据包

        表达式为:tcp.port == 80  (以tcp协议为例)

  (2)捕获多端口的数据包,可以使用and来连接,下面是捕获高于某端口的表达式

        表达式为:udp.port >= 2048 (以udp协议为例)

 

5.   针对长度和内容的过滤

  (1)针对长度的过虑(这里的长度指定的是数据段的长度)

        表达式为:udp.length < 30   http.content_length <=20

  (2)针对数据包内容的过滤

 表达式为:http.request.urimatches "vipscu"  (匹配http请求中含有vipscu字段的请求信息)

6.   进阶

通过以上的最基本的功能的学习,如果随意发挥,可以灵活应用,就基本上算是入门了。以下是比较复杂的实例(来自wireshark图解教程):

 

tcp dst port3128

显示目的TCP端口为3128的封包。

ip src host10.1.1.1

显示来源IP地址为10.1.1.1的封包。

host 10.1.2.3

显示目的或来源IP地址为10.1.2.3的封包。

src portrange2000-2500

显示来源为UDPTCP,并且端口号在20002500范围内的封包。

not imcp

显示除了icmp以外的所有封包。(icmp通常被ping工具使用)

src host10.7.2.12 and not dst net 10.200.0.0/16

显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。

(src host10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net10.0.0.0/8

显示来源IP10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在20010000之间,并且目的位于网络10.0.0.0/8内的所有封包。

 


Wireshark作为一款强大的网络抓包分析工具,可以对网络数据包进行详细的分析和解析。当我们需要对抓包到的大量数据包进行筛选和分析时,就需要用到Wireshark过滤表达式来进行筛选。Wireshark过滤表达式可以对数据包进行复杂的筛选处理,从而得到所需的数据包。其中,筛选IP端口协议是比较常见的操作。 在Wireshark中,IP地址是唯一的网络标识符,在筛选时经常作为关键字来使用。通过运用“ip.addr”或“ip.src”和“ip.dst”,我们可以轻松地筛选源IP和目的IP地址。这种方式特别适用于需要监视某个特定网络设备的流量,或是需要针对某个具体的IP地址进行分析时。 Wireshark还提供了一种以端口为基础的过滤方法,该方法包括以下部分: - “tcp.port”和“udp.port”表示TCP和UDP端口。 - “port”可以过滤使用TCP或UDP协议的任何端口。 - “tcp/udp.port”可以同时过滤TCP和UDP端口。 通过这种方式,我们可以对网络数据的端口进行筛选,从而达到对网络流量进行过滤的目的。 除了IP地址和端口号之外,协议也是非常关键的一个过滤条件,常用的协议包括HTTP、FTP、SMTP和POP等常见的应用层协议,以及TCP、UDP等传输层协议。运用Wireshark的“proto”命令可以轻松地过滤特定协议的网络数据包。 总的来说,使用Wireshark过滤表达式可以对网络数据包进行准确的筛选,并得到所需的数据包,从而加快网络问题排查的速度。熟练掌握wireshark过滤表达式将提高网络管理人员的工作效率和网络问题排查的准确度。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值