关闭 rdpcap 函数 - Scapy
Close rdpcap function - Scapy
我有一个循环遍历大量 pcap 文件的脚本。对于每个 pcap 文件,我需要读取它,然后将一些信息写入 txt 文件。我正在使用 Scapy 的 rdcap
函数。一旦我读完 pcap 文件,有没有办法关闭它?我的脚本有内存泄漏,我担心这可能是罪魁祸首(通过让许多 pcap 文件基本上处于打开状态)
检查 Scapy 的 source code 显示 rdpcap
函数忽略了关闭 pcap 文件:
@conf.commands.register
def rdpcap(filename, count=-1):
"""Read a pcap file and return a packet list
count: read only <count> packets"""
return PcapReader(filename).read_all(count=count)
我建议您按如下方式实现您自己的此功能版本:
def rdpcap_and_close(filename, count=-1):
"""Read a pcap file, return a packet list and close the file
count: read only <count> packets"""
pcap_reader = PcapReader(filename)
packets = pcap_reader.read_all(count=count)
pcap_reader.close()
return packets
我已经为这个问题创建了一个问题here。
编辑: 问题已在 this changeset 中解决。
我有一个循环遍历大量 pcap 文件的脚本。对于每个 pcap 文件,我需要读取它,然后将一些信息写入 txt 文件。我正在使用 Scapy 的 rdcap
函数。一旦我读完 pcap 文件,有没有办法关闭它?我的脚本有内存泄漏,我担心这可能是罪魁祸首(通过让许多 pcap 文件基本上处于打开状态)
检查 Scapy 的 source code 显示 rdpcap
函数忽略了关闭 pcap 文件:
@conf.commands.register
def rdpcap(filename, count=-1):
"""Read a pcap file and return a packet list
count: read only <count> packets"""
return PcapReader(filename).read_all(count=count)
我建议您按如下方式实现您自己的此功能版本:
def rdpcap_and_close(filename, count=-1):
"""Read a pcap file, return a packet list and close the file
count: read only <count> packets"""
pcap_reader = PcapReader(filename)
packets = pcap_reader.read_all(count=count)
pcap_reader.close()
return packets
我已经为这个问题创建了一个问题here。
编辑: 问题已在 this changeset 中解决。