2017-09-21 5 views
1

ich eine IP-Adresse in diesem Format habeWandeln bytearray in hex zu einem IP-Adresse Python

b'\xd4\xfbuW' 

Ich weiß, dass dies eine tatsächliche IP-Adresse, aber ich weiß nicht, wie ich es drucken kann als eine normale Adresse (wie 192.168.1.1) und sie auch in meinem Speicher als String speichern. Wie kann ich dieses Hex-Bytearray dekodieren?

Antwort

1

können Sie verwenden, um die socket Modulfunktionen, zum Beispiel:

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')) 

Ausgabe

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

Wie Sie sehen können, 192.168.1.1-\xC0\xA8\x01\x01 entsprechen würde und b'\xd4\xfbuW' wäre 212.251.117.87