如何将十六进制数据转换成二进制数据?

2024-09-27 07:25:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python原始套接字发送二进制数据。 为此,我将做以下工作。

s = '\x01\x00\x12\x59' # some binary data
sock.send(s)           # assuming "sock" is a valid, open socket object

我用wireshark嗅探网络流量,创建了一个十六进制的数据报,我想通过网络发送它

“04 f8 00 50 4f 30 fb 47 28 62 a7 6d 50 02 00 d2 7f 00”

所以我想把上面提到的十六进制数据报转换成二进制格式,比如“\x01\x00\x12\x59”。 我该怎么做?


Tags: 数据senddatais二进制someopensock
3条回答
"04 f8 00 50".replace(' ', '').decode('hex')

unhexlify可能是你要找的。它不喜欢空白,因此对于您的示例,unhexlify(data.replace(" ",""))应该可以工作。

请尝试以下代码:

"".join("04 f8 00 50 4f 30 fb 47 28 62 a7 6d 50 02 02 00 d2 7f 00 00".split()).decode('hex')

或:

import binascii
print binascii.unhexlify("".join("04 f8 00 50 4f 30 fb 47 28 62 a7 6d 50 02 02 00 d2 7f 00 00".split()))

相关问题 更多 >

    热门问题