首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用python dpkt解析tcpdump捕获

无法使用python dpkt解析tcpdump捕获
EN

Stack Overflow用户
提问于 2015-07-27 09:02:51
回答 1查看 940关注 0票数 1

Python可以解析Wireshark/pcap文件并成功地显示数据包数据:

代码语言:javascript
运行
复制
>>> for ts, pkt in pcap:
    eth = dpkt.ethernet.Ethernet(pkt)
    type(eth.data)

<class 'dpkt.ip.IP'>
<class 'dpkt.ip.IP'>

但是,当我试图解析tcpdump文件时,我得到了以下结果:

代码语言:javascript
运行
复制
>>> for ts, pkt in pcap:
    eth = dpkt.ethernet.Ethernet(pkt)
    type(eth.data)

<type 'str'>
<type 'str'>
<type 'str'>

从Python打印中可以看到,类型(eth.data)是'str',而不是类'dpkt.ip.IP'.

有人知道什么是根本原因,以及如何使tcpdump捕获的dpkt工作吗?

EN

回答 1

Stack Overflow用户

发布于 2020-05-05 20:02:48

很抱歉你等了这么久。我希望你能在不到4年的时间内找到答案。

首先,我要提到的是,网络中有一些数据包,以太网层是其中的最后一层。正因为如此,在你深入到包里之前,你应该检查一下。

例如:

代码语言:javascript
运行
复制
    #Check the if there is an ip layer
    if ether.type == dpkt.ethernet.ETH_TYPE_IP:
        #read the ip layer
        ip = ether.data

我不确定这是不是你的问题所在。如果您使用的数据包与ip层相同,请检查是否相同。但是,我希望我能帮上一些忙。

祝你度过美好的一天!

祝你好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31648931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档