我是一名初学者,正在处理一个pcap文件的任务中,使用dpkt来完成解析。由于对网络不太熟悉,所以在调试代码和入门方面遇到了很大的困难。
第一段代码:
import dpkt
filename='test.pcap'
f = open(filename)
pcap = dpkt.pcap.Reader(f)
for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
tcp = ip.data
f.close()
错误是AttributeError: 'str'对象没有属性'data'
所以从之前的Stackoverflow中,我发现可能应该“跳过dpkt以太网解码并直接转到IP解码”,因此我修改了代码并跳到:
import dpkt
filename='test.pcap'
f = open(filename)
pcap = dpkt.pcap.Reader(f)
for ts,buf in pcap:
ip = dpkt.ip.IP(buf)
tcp = ip.data
f.close()
它现在给我的错误是“UnpackError:无效的头长度”
不太明白如何继续下去,请帮忙,非常感谢。