3

我收集了几 mb 的网络流量,并希望对其进行分析。我面临的问题是我想以一种可以降低搜索时间复杂度的方式存储它。

我脑海中的第一个想法是将其放入具有列中所有可能属性的数据库中,但后来我意识到表中会有很多 NULL 值,这会降低数据库的性能。即使小型数据库的性能下降很小,当我解析一个大的 *.pcap 文件(大于 1Gb)时,性能下降也会极大地影响数据库的性能。因为数据库的大小会增加,表中 NULL 值的数量也会增加。

那么有没有更好的方法来存储 *.pcap 文件以供分析,我一直在研究 XML 树作为解决方案,但我不确定。我正在使用 python 来执行此操作,并且正在使用 dpkt 模块从 *.pcap 文件中提取数据

提前致谢

4

1 回答 1

3

您可以分两步完成:

首先,使用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...

希望这可以帮助。

于 2013-10-04T02:48:11.907 回答