python-如何存储数据包捕获数据(* .pcap)进行分析

我收集了几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...

希望这可以帮助.

上一篇:libpcap编译期间类型冲突


下一篇:WinPcap网络分析原理