2015-08-03 145 views
0

我想先過濾一個pcap文件中的100個數據包,並在stdout上顯示結果。用於過濾第一100包我用下面的命令:將editcap的輸出重定向到tcpdump

editcap -r test.pcap output.pcap 1-100 

爲示出了用於進一步目的欲使用tcpdump的結果和過濾包。

tcpdump -tttt tcp and host ip 192.168.1.1 -r inputfile.pcap 

我想重定向editcap的輸出和tcpdump,像這樣:

editcap -r test.pcap - | tcpdump -tttt tcp and host ip 192.168.1.1 -r - 

但在這個命令我不可能過濾前100個數據包。是否有可能這樣做? 如果不是,可以reditet editcap的輸出到RAM然後從RAM讀取tcpdump?

感謝先進。 P:順便說一句,我不想​​使用下面的命令,因爲這個命令讀取文件裏面的所有數據包。我需要命令讀取pcap文件中的一些數據包,然後顯示完成該作業。

tshark -r ~/test1.pcap -R "frame.number<20 and frame.number>10" 

回答

0

但在這個命令我不能過濾前100包

即,你看不到任何數據包?

嘗試做

editcap -F pcap -r test.pcap - 1-100 | tcpdump -tttt tcp and host ip 192.168.1.1 -r - 

爲editcap可能寫出一個PCAP-NG文件,並有在讀PCAP-ng的文件,導致在tcpdump的不工作時過濾的libpcap的某些版本的bug。

+0

在提供的命令中,您沒有在editcap或tcpdump中放置任何開關來過濾pcap文件中的前100幀。在editcap中,應該在命令結尾放置1-100,如editcap -r test.pcap output.pcap 1-100。讓我清除我的問題,我想用BPF過濾器和一些過濾器來過濾pcap文件中的數據包以顯示特定的幀編號。第一個BPF過濾器沒問題,但是我想在框架編號10到20之間放一些過濾器。在editcap中,我把10-20放在命令的末尾,它完美地工作,因爲editcap沒有BPF過濾器I希望PIPE輸出到tcpdump命令。 – omid

+0

這個命令(tshark -r〜/ test1.pcap -R「frame.number <20 and frame.number> 10」)提供了我想要的,但問題是tshark讀取整個pcap文件。 editcap對tshark的優勢是editcap不會讀取整個pcap文件,只是命令中的特定幀。 – omid

+0

我在回答中編輯了命令以選擇前100個數據包。 – 2015-08-04 07:53:33