【发布时间】:2020-02-28 10:03:31
【问题描述】:
我一直在尝试找出一种方法来使用 scapy 读取 pcap 文件的一部分。
例如:我有一个 1000 行的 pcap 文件。
问题:是否可以分 10 条读取,即依次读取 100 行?
场景是:
我正在读取多个 pcap 文件并比较它们之间的数据包。
为了比较数据包,我使用索引并将特定数据包称为pkt = packets_from_pcap_file_7[idx]。要使用索引,我需要使用rdpcap(FILENAME.pcap) 读取 pcap 文件。但是,此函数会读取整个 pcap 文件并导致 MemoryError。
由于我想比较来自不同文件的特定数据包,我发现很难使用
RawPcapReader(FILENAME.pcap) 我可以同时遍历一个特定的数据包:
packets = RawPcapReader(FILENAME.pcap)
for pkt in packets:
pkt.doThings
我将发布一个非常缓慢的解决方案来解决我们必须为每个数据包遍历整个 pcap 文件并迭代到指定索引的问题:
def get_packet(idx):
packets = RawPcapReader("FILENAME.pcap")
counter = 0
for pkt in packets:
if counter == idx:
return pkt
counter += 1
我可以在 linux 终端中拆分数据包,但由于这也将用于其他人,我希望脚本完成所有工作。 我认为有一个更简单的解决方案,我一直无法找到。提前致谢。
【问题讨论】: