gpt4 book ai didi

python scapy过滤pcap文件

转载 作者:行者123 更新时间:2023-12-01 22:23:49 26 4
gpt4 key购买 nike

我必须从 pcap 文件中过滤数据包并进一步处理它们。这些文件非常大,因此一次将整个文件读入内存是不可行的。 Scapy 似乎非常复杂,我能够使用

迭代数据包
with PcapReader(pcap) as pcap_reader:
for pkt in pcap_reader:
...

不幸的是,我无法找到一种方法将过滤器(例如BPF)应用于PcapReader,因此仅迭代匹配的数据包,也不应用于pkt(其中应该是 scapy.packet !?)。

我看到有一个函数tdecode,它是一个tshark解码器,它接受一个过滤器作为参数,但是没有办法将生成的数据包保存到变量中,而只是淹没终端与所有结果。

有没有一种方法可以使用 scapy 过滤 .pcap 文件中的数据包,并且仍然迭代结果?

最佳答案

Scapy 的速度慢得令人难以置信,以至于交互使用是唯一的用途。它还不允许在完全(Python 中)解析之前过滤数据包,这加剧了问题。

您可以通过自己编写一个小型 C 扩展或使用 binding 来使用 libpcap ,作为 PcapReader 的替代品。 libpcap 允许您在 BPF-syntax 中指定过滤器,它应用于库内的传入数据包,或者 - 当从设备捕获实时数据时 - 由内核本身。这将极大地提高您的表现。

基本布局是:

  • open_offline() pcap 文件
  • 设置 BPF 过滤器
  • 从 libpcap 提供的句柄读取
  • 将传入的数据包数据传递给 scapy 进行进一步检查

您可以获得quite sophisticated就这样。

关于python scapy过滤pcap文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com