2013-10-03 72 views
1

我收集了幾MB的網絡流量並希望對其進行分析。我面臨的問題是我想以一種方式存儲它,以便在搜索時減少時間複雜度。如何存儲用於分析的數據包捕獲數據(* .pcap)

我在腦海裏想到的第一個想法是把它放到一個數據庫中,列中有所有可能的屬性,但後來我意識到表中會有很多NULL值,這會降低數據庫。即使性能下降對於小型數據庫來說很小,但是當我解析大型* .pcap文件(大於1Gb)時,降級將嚴重影響數據庫的性能。隨着數據庫大小的增加以及表中NULL值的數量增加。

那麼有沒有更好的方法來存儲* .pcap文件進行分析,我一直在研究XML樹作爲解決方案,但我不確定它。我使用Python來做到這一點,我使用dpkt模塊從* .pcap文件中提取數據advvance

感謝

+0

你得到了什麼類型的性能解析pcap?你希望達到什麼樣的表現? – tMC

+1

你對解析數據有什麼計劃?你想瀏覽它嗎?搜索什麼?過濾出特定的數據包? – Milo

+0

@Milo:我想對數據運行搜索以獲取相應的數據包。並過濾特定的數據包。主要工作是對數據進行搜索。 – TheCreator232

回答

1

你也許可以做到這一點在兩個步驟:

首先,使用tshark將pcap文件轉換爲.csv的工具;例如:

tshark -r input_file.pcap -n -T fields -E separator=, -e frame.time -e ip.src -e ip.dst -e ip.proto -e tcp.port >outfile.csv 

然後使用Python中的csv模塊讀取它並進行分析。

import csv 
with open("outfile.csv", "r") as f: 
    reader = csv.reader(f, delimiter=",") 
    for row in reader: 
     # do whatever with the data row... 

希望這會有所幫助。