使用 Python 解析 pflog 文件

Parsing pflog files with Python

我正在尝试在 Linux (Fedora 25) 机器上用 Python 3.5 解析 pflog (OpenBSD 5.8)。我尝试了 dpkt 模块,但是 it doesn't support pflog files。然后我尝试了 Scapy:

>>> p = rdpcap('pflog')
WARNING: RawPcapReader: unknown LL type [117]/[0x75]. Using Raw packets.
>>> p.summary()
Raw
Raw
...
Raw
>>> rdpcap('pflog')
<pflog: TCP:0 UDP:0 ICMP:0 Other:109>

如警告消息所示,所有数据包都被读取为原始数据包,因此我无法打开它们(这很奇怪,因为 Scapy supports pflog)。我尝试了不同的文件(来自同一台 OpenBSD 机器),结果总是一样的。另外,我在 Wireshark 中成功导入了这个文件。

我的问题是:如何使用 Python 解析此类文件?如果 Wireshark 可以正确打开它,一些 Python 模块也应该可以打开它(我认为是)。

Scapy 作品, 您需要使用:

load_layer("pflog")

加载 pcap 之前