我收集了几mb的网络流量,并希望对其进行分析.我面临的问题是我想以某种方式存储它,以便在搜索它时可以减少时间复杂度.
我脑海中的第一个想法是将其放入具有所有列属性的数据库中,但是后来我意识到表中将有很多NULL值,这会降低数据库的性能.即使对于小型数据库来说性能下降很小,当我将解析一个大的* .pcap文件(大于1Gb)时,性能下降也会严重影响数据库的性能. AS的数据库大小将增加,表中的NULL值也会增加.
因此,有没有更好的方法来存储* .pcap文件进行分析,我一直在寻找XML树作为解决方案,但我不确定.我正在使用python来做,我正在使用dpkt模块从* .pcap文件中提取数据
提前感谢
解决方法:
您可以分两步进行操作:
首先,使用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...
希望这可以帮助.