2011-07-13 54 views
4

我想發送使用Python原始套接字的二進制數據。 爲此,我會做以下。如何將HEX數據轉換爲BINARY數據?

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

我已經創造了HEX數據報在通過嗅探與wireshark.Which網絡流量,我想在network.This手工製作數據報發送就像

「04 F8 00 50 4F 30 FB 47 28 62 a7 6d 50 02 02 00 d2 7f 00 00「

所以我想將上面提到的HEX數據報轉換成像」\ x01 \ x00 \ x12 \ x59「這樣的二進制格式。 我該怎麼做?

回答

2
"04 f8 00 50".replace(' ', '').decode('hex') 
4

試試下面的代碼:

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

OR:

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())) 
0

unhexlify可能是你在找什麼。它不喜歡空白,所以對於你的例子,unhexlify(data.replace(" ",""))應該工作。