如何将c中的以下结构转换为python?

如何将c中的以下结构转换为python?,python,network-programming,netlink,Python,Network Programming,Netlink,如何将ieee80211_hdrblow转换为python结构,该结构可以解码bytearray并存储变量 谢谢 struct ieee80211_hdr { unsigned char frame_control[2]; unsigned char duration_id[2]; unsigned char addr1[6]; unsigned char addr2[6]; unsigned char addr3[6]; unsigned cha

如何将ieee80211_hdrblow转换为python结构,该结构可以解码bytearray并存储变量

谢谢

struct ieee80211_hdr {
    unsigned char frame_control[2];
    unsigned char duration_id[2];
    unsigned char addr1[6];
    unsigned char addr2[6];
    unsigned char addr3[6];
    unsigned char seq_ctrl[2];
    unsigned char addr4[6];

})

请使用StackOverflow的功能将代码嵌入为文本,而不是使用图像

如何使用struct转换为类,如下所示:

ieee80211级人力资源部: 定义初始自我、帧控制、持续时间id、addr1、addr2、addr3、顺序ctrl、addr4: self.frame\u control=frame\u control self.duration\u id=duration\u id self.addr1=addr1 self.addr2=addr2 self.addr3=addr3 self.seq\u ctrl=seq\u ctrl self.addr4=addr4 这将创建一个可以像这样使用的对象

thing=ieee80211\uHRDAB、cd、efghij、klmnop、qrstuv、wx、yz1234 printthing.addr3 以此类推,其中'thing.addr3'等是类实例'thing'中的持久变量`
python中有一个struct类

此模块在Python值和表示为Python字节对象的C结构之间执行转换


您也可以查看dpkt软件包

请明确阅读,不要发布代码、数据、错误消息等的图像-复制或在问题中键入文本。您好,感谢分享信息。我修改了问题。请重复并从中删除。演示如何解决这个编码问题。你必须这样做,然后问一个关于你的实现的具体问题。嗨,考虑一下行结构是否是IEEE80211HDR*HDR=结构IEEE80211HDR*数据;如果数据是bytearray,那么类如何将其拆分为变量?例如,我得到的是bytearray格式的传入数据。如果我创建了一个ieee80211_hdr=data类的对象;其中data=b'\x42\x00\x00….'。ieee80211_hdr.addr1=42:00:。。。它是这样工作的吗?我不这么认为。但是谢谢你的回复。你可以做一些类似的事情,比如instance=ieee80211_hdrdata[0:2],data[2:4],data[4:8]。。。������ ������ ������ ������ ������ ������ 嗨,我试着按照ieee80211_hdr格式切片bytearray,但我在打印hdr.addr1时看到了上述信息,而不是42:00的mac addr:…您的复制粘贴没有工作,但听起来您可能想忽略:字符,这可能只是调整了切片的索引。就像[0:2][3:5][6:10]一样。@IEEE 802.11中的HunterMorris字段不是字符串,而是压缩的二进制数据。您好,我尝试了使用2B2B6B格式的struct.unpack,其中B是无符号字符,根据ieee80211\U hdr结构,2代表B的2,这是从c struct解包到python的正确格式吗?。这是将数据解包成二进制,但mac的数据是十六进制的。我是否应该再次尝试对bin数据进行hexify?