wireshark 的使用(filter的用法)

來源:互聯網
上載者:User

一直不想動這個東西,是源於心理的惰性。

當沒有退路可言時,我在研究。

 

因為一直與伺服器端調整不順暢,讓現在的項目總是卡在一個地方。靠別人無法解決問題,只能自己研究。

所以拿出這個東西來玩。

 

解關於過濾器的問題:(以下文檔來自於網路)

 

過濾器文法

-------------------------------------------------------------

最簡單的過濾允許你檢查一個協議或者欄位的存在。如果你想查看所有的使用IP協議的資料包,過濾器為“ip”(不帶引號)。想看所有包含Token-ring
RIF欄位的資料包,使用“tr.rif”。
可以使用“exist”操作符來看一個協議或者欄位是否存在。
注意:所有的協議和欄位的名字可以在過濾器的參考中獲得。

 

比較操作符

-------------------------------------------------------------

欄位可以與值進行比較。比較操作符可以使用類似英語的簡寫,也可以使用c語言的字元。
eq,==              等於
ne,!=                 不等於
gt,>                    比...大
lt,<                     比...小
ge,>=                大於等於
le,<=                  小於等於

 

搜尋比較操作符

--------------------------------------------------------------
另外還有一些操作符只能使用類英語簡寫,不能使用類c語言簡寫。
contains 判斷一個協議,欄位或者分區包含一個值
matches             判斷一個協議或者字串匹配一個給定的Perl運算式

“contains”操作符允許一個過濾器搜尋一串字元,其形式為字串,或者位元組,或者位元組組。例如在搜尋一個HTTP
URL地址,可以使用下面的過濾器:
http contains “http://www.wireshark.org”;



“contains”操作符不能被用於原子型的欄位,比如數字和ip地址。

“matches
”操作符允許一個過濾器使用與Perl相容的Regex(PCRE)。“matches”
操作符只能應用於協議或者字串類型的協議欄位。例如:搜尋一個給定的wAP WSP User-Agent,你可以這樣寫過濾器:
wsp.user_agent matches "(?i)cldc"

函數

-------------------------------------------------------------
過濾器的語言還有下面幾個函數:
upper(string-field)-把字串轉換成大寫
lower(string-field)-把字串轉換成小寫

upper((和lower((在處理大小寫敏感的字串比較時很有用。例如:
upper(ncp.nds_stream_name) contains "MACRO"
lower(mount.dump.hostname) =="angel"

 

協議欄位類型

---------------------------------------------------------------
每個協議的欄位都有規定的類型。這些類型是:
unsigned integer               不帶正負號的整數(8位元、16位元、24位元、32位元)
signed integer                   有符號整數(8位元、16位元、24位元、32位元)
Boolean                             布爾值
Ethernet address               乙太網路地址(6位元組)
Byte array                          位元組數組
IPv4 address                      IPv4地址
IPv6 address                      IPv6地址
IPX network number           IPX網路地址
Text string                          文本串
Double-precision floating point number          雙精確度浮點值

一個整數可以有三種表示方法,十進位、八進位和十六進位。下面三個例子是相同的:

frame.pkt_len>10
frame.pkt_len>012
frame.pkt_len>0xa

 

布爾值不是true就是false.在測試一個布爾類型欄位的顯示過濾器中,"true"的值相當於1或者其它的非0值,"false"就是0。
例如:令牌環資料包中一個源路由欄位是布爾型的.找到源路由的資料包,可以這樣寫顯示過濾器:
tr.sr==1

非源路由資料包可以使用這樣的過濾器:
tr.sr==0

乙太網路地址和位元組數組使用十六進位表示.十六進位的數字可以被       ":"         "."         "-"      
分隔。例如:

         eth.dst        eq        ff:ff:ff:ff:ff:ff
         aim.data == 0.1.0.d
         fddi.src == aa-aa-aa-aa-aa-aa
         echo.data == 7a

IPv4 地址可以被表示成點分十進位或者使用主機名稱表示。例如:

         ip.dst eq www.mit.edu


         ip.src == 192.168.1.1

 

IPv4地址之間可以和數字之間一樣,使用關係符號比較:eq,ne,gt,ge,lt和le。IPv4地址按照主機順序儲存,這樣當你在使用顯示
過濾器的時候就不用擔心IPv4地址的結束了。

當使用IPv4子網劃分的時候,CIDR標記法也可以使用。例如:以下的過濾器可以找到所有129.111的資料包:
ip.addr==129.111.0.0/16

記住,斜線後面的數字用於表示子網佔用的位元數。CIDR標記法也用於尋找主機名稱,例如C類網路中主機“sneezy”的IP地址。
ip.addr eq sneezy/24

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.