首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于dpkt的python网络数据包分析

基于dpkt的python网络数据包分析
EN

Stack Overflow用户
提问于 2014-04-17 18:22:17
回答 1查看 1K关注 0票数 0

我试图使用python中的*.pcap库分析tcpdump捕获的SCTP dpkt文件。

我可以得到SCTP的通用头,块头。在块头之后,我得到了一个不能使用库解析的chunk.data。(我查看了源代码)。

但是,我只需要该chunk.data的前4个字节。chunk.data的类型是字符串。所以我想,如果我能得到前4个字符,我可以得到前4个字节(因为一个字符的大小是1字节)。之后,我需要使用socket.ntohl()将这4个字节转换为宿主字节顺序。但是第一,我需要将4个字符串转换成一个无符号整数,作为socket.ntohl()函数的输入,我不知道该如何做。

我试过用ascii密码。

代码语言:javascript
复制
data=chunk.data
x=data[:4]
i= ntohl(int(''.join(str(ord(c)) for c in x)))

它显示了一个错误:

代码语言:javascript
复制
i= ntohl(int(''.join(str(ord(c)) for c in x)))
OverflowError: long int too large to convert

我试过服用x="efgh"。但是ascii值不会生成一个4字节的无符号整数。(101102103104 > 4294967295)所以我认为在这里使用ascii值不是正确的。

有人能告诉我该怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-18 19:22:21

感谢@BSH for 这个答案

我加了

代码语言:javascript
复制
from struct import unpack

对于我所需的输出,这对我来说很好。

代码语言:javascript
复制
i=ntohl(unpack('<I',chunk.data[:4])[0])

struct.unpack用于将字符串解释为打包的二进制数据。

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

https://stackoverflow.com/questions/23140626

复制
相关文章

相似问题

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