gpt4 book ai didi

python - 使用dpkt解析pcap文件

转载 作者:行者123 更新时间:2023-12-05 00:41:15 25 4
gpt4 key购买 nike

我正在执行一项任务,我必须解析一个 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()

Error is AttributeError: 'str' object has no attribute '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: invalid header length”

真的不明白如何继续前进,任何帮助将不胜感激

最佳答案

我在手机上记录的痕迹也遇到了同样的问题。

这是由于以太网被 Linux Cooked Capture 取代。如果您的跟踪以类似方式封装,则必须使用 dpkt.sll.SLL(buff) 而不是 dpkt.ethernet.Ethernet(buf)。这是一个例子:

import dpkt

filename='a_linux_cooked_capture.pcap'
f = open(filename, 'rb')
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
eth = dpkt.sll.SLL(buf)
ip = eth.data
tcp = ip.data
f.close()

关于python - 使用dpkt解析pcap文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com