在Wireshark中使用過濾器——顯示過濾器


在Wireshark運行過程中選擇搜索(Ctrl-F),第一個默認的搜索選項就是顯示過濾器
顯示過濾器用於捕獲文件,用來告訴Wireshark只顯示那些符合過濾條件的數據包。
顯示過濾器比捕獲過濾器更加常用,是因為它可以讓你對數據包進行過濾,卻並不省略掉捕獲文件中的其他數據。也就是說如果你想回到原先的捕獲文件,你僅僅需要清空顯示過濾表達式。
你可能需要使用顯示過濾器,來清理過濾文件中不相關的廣播流量,比如清理掉Packet List面板中與當前的分析問題無關的ARP廣播,但是那些ARP廣播之后可能會有用,所以最好暫時把他們過濾掉,而不是刪除他們。
如果想要過濾掉不惑窗口中所有的ARP數據包,將你的鼠標放到Packet List面板上方的Filter文本框中,然后輸入“!ARP”,就可以從Packet List面板中去掉所有的ARP數據包了,如下圖。

過濾器表達式語法結構

你會經常用到捕獲或者顯示過濾器來對某一個協議進行過濾。舉例來說,如果你在解決一個TCP問題,那么你就只希望看到捕獲文件中的TCP流量。一個簡單的tcp過濾器就可以解決這個問題。
加入為了解決你的TCP問題,你使用了恨過ping功能,所以也就產生了很多ICMP流量,你可以通過“!icmp”這個過濾器表達式,將你捕獲文件中的ICMP流量屏蔽掉。
比較操作符可以讓你進行值的比較。舉例來說,當你檢查一個TCP/IP網絡中的問題時,你可能經常需要檢查和某一個IP地址相關的數據包。等於操作符可以讓你創建一個只顯示192.168.0.1這個IP地址相關數據包的過濾器。

ip.addr==192.168.0.1

現在假設你只需要查看哪些長度小於128字節的數據包,你可以使用“小於或等於”操作符,來完成這個要求,其過濾器表達式如下。

frame.len<=128

Wireshark過濾器表達式的比較操作符

操作符 說明
== 等於
!= 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於

邏輯運算符可以讓你將多個過濾器表達式合並到一個語句中,從而極大提高過濾器的效率。舉例來說,如果我們只想顯示兩個IP地址上的數據包,我們可以使用or操作符來創建一個表達式,只顯示這兩個IP地址的數據包,如下所示。

ip.addr==192.168.0.1 or ip.addr==192.168.0.2

Wireshark的邏輯操作符

操作符 說明
and 兩個條件需同時滿足
or 其中一個條件被滿足
xor 有且僅有一個條件被滿足
not 沒有條件被滿足

顯示過濾器表達式實例

常用顯示過濾器

過濾器 說明
!tcp.port==3389 排除RDP流量
tcp.flag.syn==1 具有SYN標志位的TCP數據包
tcp.flag.rst==1 具有RST標志位的TCP數據包
!arp 排除ARP流量
http 所有HTTP流量
tcp.port23 || tcp.port21 文本管理流量(Telnet或FTP)
smtp || pop || imap 文本email流量(SMTP、POP或IMAP)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM