Ich möchte meine eigene struct.pack
spezifische Funktion implementieren, um eine IP-Zeichenfolge (d. H. "192.168.0.1") zu einem 32-Bit-gepackten Wert zu packen, ohne die integrierte Methode socket.inet_aton
zu verwenden.Python pack IP-Zeichenfolge
ich so weit gekommen:
ip = "192.168.0.1"
hex_list = map(hex, map(int, ip.split('.')))
# hex list now is : ['0xc0', '0xa8', '0x0', '0x01']
Meine Frage ist: Wie komme ich von diesem ['0xc0', '0xa8', '0x0', '0x01']
-'\xc0\xa8\x00\x01'
, (das ist, was ich von socket.inet_aton(ip)
bekommen (? Und auch - Wie ist es möglich, dass es eine NUL (\x00
) in der Mitte dieser Zeichenfolge gibt? Ich glaube, ich habe ein wenig Verständnis für das Format \x
)
Vielen Dank für Ihre Antwort! –