2017-09-21 65 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