在python中发送十六进制数据包

时间:2011-10-05 23:27:20

标签: python hex packet

如何在数据包中发送十六进制数据?我正在尝试使用十六进制而不是ASCII来精确复制数据包。所有我正在寻找的是sendto参数,例如,如果我需要发送的十六进制是00AD12。

1 个答案:

答案 0 :(得分:11)

使用struct在字节之间进行转换(通常以十六进制方式表示)和数字:

>>> import struct
>>> struct.pack('!I', 0xAD12)
b'\x00\x00\xad\x12'

如果你有一个十六进制字符串并希望将其转换为字节,请使用binascii.unhexlify

>>> import binascii
>>> binascii.unhexlify('ad12')
b'\xad\x12'