2017-03-07 80 views
1

我有數百個捕獲文件,需要總結對服務器向大量客戶端發出的特定請求的響應。我正在使用腳本來使用tshark處理捕獲文件。我想以編程方式設置frame.ref_time匹配某個顯示過濾器的數據包,然後使用frame.time_relative < x seconds重新掃描,以適應我的目的(我已經使用tcp.stream作爲過濾器,但需要進一步限制)。如何以編程方式在wireshark capture中設置標籤frame.ref_time

tshark和editcap似乎都沒有這樣做,但我不確定。當然這個能力不限於gui?

如何通過腳本以編程方式設置frame.ref_time? 設置了標籤後,是否有清除所有標籤的直接方式,還是應該優雅並執行反向操作?

回答

1

據我所知,您只能使用GUI設置frame.ref_time;但是,這種限制可能不一定是您的問題。一旦你應用了一個過濾器,那麼當這些數據包被寫入一個新的文件時,所有的數據幀都會變成相對於匹配過濾器的第一個數據包的數據幀。因此,您應該能夠使用兩個實例tshark來實現您所需的功能,第一個實例隔離感興趣的流,第二個實例隔離符合時間相關條件的那些幀。

例如,假設您對與TCP數據流0相關的數據包感興趣,但只有那些在數據流啓動後0.1秒內收到的流的一部分的數據包。在這種情況下,你可以使用一個命令如:

tshark -r capturefile.pcap -Y "tcp stream eq 0" -w - | tshark -r - -Y "frame.time_relative < 0.1" 

參考tshark man page的更多信息,tshark選項。

+0

謝謝。這工作完美。我最終得到了我需要的每個流的兩個相關幀,而沒有額外的混亂。它比我之前的解決方案(尚未完成運行)要快得多,儘管它會多花一點時間。 – gloopy

相關問題