2017-09-21 36 views
1

我這種格式的ByteArray到一個IP地址蟒蛇

b'\xd4\xfbuW' 

我知道,這是一個真實的IP地址有一個IP地址,但我不知道我怎麼能打印出來作爲一個正常的(如192.168.1.1)地址,並將其作爲字符串存儲在我的內存中。我怎樣才能解碼這個十六進制byterayray?

回答

1

您可以使用socket模塊的功能,例如:

import socket 

ip_string = '192.168.1.1' 
print(socket.inet_aton(ip_string)) 
print(socket.inet_ntoa(socket.inet_aton(ip_string))) 
print(socket.inet_pton(socket.AF_INET, '192.168.1.1')) 
print(socket.inet_ntop(
    socket.AF_INET, socket.inet_pton(socket.AF_INET, '192.168.1.1'))) 

packed_ip = b'\xd4\xfbuW' 
print(socket.inet_ntoa(b'\xd4\xfbuW')) 

輸出

b'\xc0\xa8\x01\x01' 
192.168.1.1 
b'\xc0\xa8\x01\x01' 
192.168.1.1 
212.251.117.87 

正如你可以看到,192.168.1.1將對應於\xC0\xA8\x01\x01b'\xd4\xfbuW'212.251.117.87