【问题标题】:Strip radiotap headers from a pcap file从 pcap 文件中去除 radiotap 标头
【发布时间】:2015-01-18 23:05:30
【问题描述】:
我正在做一个项目,我需要捕获包含 h264 视频流的 pcap 文件。我需要从数据包中重建视频。我找到了一个名为 videosnarf 的工具,它可以做到这一点,但问题是我捕获的 pcap 文件包含一个 radiotap 标头,我需要先将其剥离,然后才能将数据包与 videonarf 一起使用。有什么办法可以去掉 radiotap 标头?如果有人可以指导我使用可用于修改 pcap 文件的实用程序或 python 库,那就太好了!谢谢。
【问题讨论】:
标签:
python
wireshark
pcap
scapy
【解决方案1】:
scapy 是您正在寻找的 python 库。可以使用rdpcap和wrpcap读写pcap文件,详见official API documentation:
rdpcap(filename, count=-1)
读取一个 pcap 文件并返回读取数据包的列表。如果count 为正,则仅读取第一个count 数据包。
wrpcap(filename, pkt, linktype=None)
将数据包或数据包列表写入 pcap 文件。 linktype 可用于强制将链接类型值写入文件。
因此,从pcap 文件中去除RadioTap 标头的代码将是这样的:
from scapy.all import rdpcap, wrpcap
pkts = rdpcap('h264_file.pcap')
stripped_pkts = [pkt.payload for pkt in pkts] # strip the RadioTap header; extract just its payload
wrpcap('stripped_h264_file.pcap', stripped_pkts)