1. 程式人生 > >ngrep 比 tcpdump 更方便檢視的抓包顯示工具

ngrep 比 tcpdump 更方便檢視的抓包顯示工具

ngrep 是grep(在文字中搜索字串的工具)的網路版,他力求更多的grep特徵,
用於搜尋指定的資料包

一: ngrep的安裝 CentOS6.2 64位

      下載下來是一個 bz2的包, 用bzip2命令加壓成tar包,在用tar解壓

      bzip2 -d ngrep-1.45.tar.bz2

  tar xf ngrep-1.45.tar

二:安裝 ngrep

      cd 進入目錄 ngrep-1.45 

      ./configure

  make

  make install

三:我這樣安裝的時候報錯了, 如下:

   

或者是這樣的錯誤:

看錯誤說明,系統缺少 libpacp的包,那麼yum安裝 libpacp, 

 yum install libpcap libpcap-devel -y

重新安裝ngrep

./configure --with-pcap-includes=/usr/local/include/pcap 

make

make install

注意加上紅色的部分,這樣才正確的安裝了

四:使用 http://blog.sina.com.cn/s/blog_4d14fb2b01012tqo.html

使用方法:()
usage: ngrep <-LhNXViwqpevxlDtTRM> <-IO pcap_dump> <-n num> <-d dev> <-A num>
<-s snaplen> <-S limitlen> <-W normal|byline|single|none> <-c cols>
<-P char> <-F file> <match expression> <bpf filter>
-h is help/usage
-V is version information
-q is be quiet (don't print packet reception hash marks)靜默模式,如果沒有此開關,未匹配的資料包都以“#”顯示
-e is show empty packets 顯示空資料包
-i is ignore case 忽略大小寫
-v is invert match 反轉匹配
-R is don't do privilege revocation logic
-x is print in alternate hexdump format 以16進位制格式顯示
-X is interpret match expression as hexadecimal 以16進位制格式匹配
-w is word-regex (expression must match as a word) 整字匹配
-p is don't go into promiscuous mode 不使用混雜模式
-l is make stdout line buffered
-D is replay pcap_dumps with their recorded time intervals
-t is print timestamp every time a packet is matched在每個匹配的包之前顯示時間戳
-T is print delta timestamp every time a packet is matched顯示上一個匹配的資料包之間的時間間隔
-M is don't do multi-line match (do single-line match instead)僅進行單行匹配
-I is read packet stream from pcap format file pcap_dump 從檔案中讀取資料進行匹配
-O is dump matched packets in pcap format to pcap_dump 將匹配的資料儲存到檔案
-n is look at only num packets 僅捕獲指定數目的資料包進行檢視
-A is dump num packets after a match匹配到資料包後Dump隨後的指定數目的資料包
-s is set the bpf caplen
-S is set the limitlen on matched packets
-W is set the dump format (normal, byline, single, none) 設定顯示格式byline將解析包中的換行符
-c is force the column width to the specified size 強制顯示列的寬度
-P is set the non-printable display char to what is specified
-F is read the bpf filter from the specified file 使用檔案中定義的bpf(Berkeley Packet Filter)
-N is show sub protocol number 顯示由IANA定義的子協議號
-d is use specified device (index) instead of the pcap default 使用哪個網絡卡,可以用-L選項查詢
-L is show the winpcap device list index 查詢網絡卡介面

五:應用示例:

1:捕獲字串".flv",比如要檢視在Web Flash 視訊中的flv檔案的下載地址
ngrep -d3 -N -q \.flv
interface: \Device\TNT_40_1_{670F6B50-0A13-4BAB-9D9E-994A833F5BA9} (10.132.0.0/2
55.255.192.0)
match: \.flv

2:ngrep -W byline -d lo port 18080
捕捉cloudian:18080埠的request和response。-W byline用來解析包中的換行符,否則包裡的所有資料都是連續的,可讀性差。-d lo是監聽本地網絡卡
ngrep -W byline -d eth0 port 80
捕捉amazon:80埠的request和response。-d eth0 是用來監聽對外的網絡卡

3:

可以用-d any來捕捉所有的包,這個很管用。
ngrep '[a-zA-Z]' -t -W byline -d any tcp port 18080

以下部分使用來自 這裡:http://blog.58share.com/?p=37

4:ngrep -W byline -d lo port 18080 
捕捉cloudian:18080埠的request和response。
-W byline : 用來解析包中的換行符,否則包裡的所有資料都是連續的,可讀性差。
-d lo  : 是監聽本地網絡卡

5:ngrep -W byline -d eth0 port 80
捕捉amazon:80埠的request和response。
-d eth0:  是用來監聽對外的網絡卡
可以用-d any來捕捉所有的包,這個很管用。

6:ngrep ‘[a-zA-Z]‘ -t -W byline -d any tcp port 18080 
抓取header頭資訊