gpt4 book ai didi

python - 在 Python 2.6 中解析 PCAP

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:27 24 4
gpt4 key购买 nike

我正在尝试简单地解析数据包捕获中的数据。我举了例子只是为了看看我是否可以编译,但我最终遇到了一个错误。下面是代码。

import dpkt
import sys

f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
tcp = ip.data


f.close()

我得到的错误如下:文件“inspection.py”,第 15 行,在 tcp = ip.data 中

AttributeError: 'str' 对象没有属性 'data'

如有任何帮助,我们将不胜感激。

最佳答案

dpkt.ethernet.Ethernet(buf) 的调用返回了一个字符串,因为以太网类无法解压 buf。一个可能的原因是您的 pcap 文件没有将以太网作为其第 2 层协议(protocol)。您可以将 pcap 加载到 Wireshark 中以确认这一点。

以下脚本尝试检查 pcap 文件的数据链路字段并使用适当的第 2 层 dpkt 类来解码帧:

import dpkt
import sys

f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
if pcap.datalink() == dpkt.pcap.DLT_LINUX_SLL:
l2 = dpkt.sll.SLL(raw_pkt)
else:
l2 = dpkt.ethernet.Ethernet(buf)
ip = l2.data
tcp = ip.data

关于python - 在 Python 2.6 中解析 PCAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9330686/

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