Python -将数据包保存到pcapng文件



我的代码使用scapy创建了两个数据包,应该将它们保存到pcapng文件中。但是,我找不到任何方法将文件保存为pcapng。我尝试使用Scapy的PcapWriter并将文件保存到sniff.pcapng,但结果是pcap文件具有pcapng扩展名。还试图寻找模块来转换现有的pcap文件到pcap,但找不到任何东西。(找到了这个python-pcapng模块,但找不到关于如何保存我读取的文件的任何文档)

我会从您链接到的库中查看一下。这似乎是一个创建pcap的例子。

谢谢Nadav!我必须做一些修改才能使它工作,所以我添加了代码,以防其他人需要它。

import pcapng.blocks as blocks
from pcapng import FileWriter
from scapy.all import *
SHB_INTERFACE_OPTIONS = {"if_description": "Hand-rolled","if_os": "Python"}
SHB_HEADER_OPTIONS = {"shb_hardware": "artificial", "shb_os": "python", "shb_userappl": "python-pcapng"}
shb = blocks.SectionHeader(options=conf.SHB_HEADER_OPTIONS)
shb.new_member(blocks.InterfaceDescription, link_type=1, options=conf.SHB_INTERFACT_OPTIONS)
with open(f'{pcap_path}ng', 'ab') as file_obj:
writer = FileWriter(file_obj, shb)
orig_packets = rdpcap(pcap_path)
for packet in orig_packets:
spb = shb.new_member(blocks.SimplePacket)
spb.packet_data = bytes(packet)
writer.write_block(spb)

最新更新