Konvertieren einer IP in Hex von Python
Ich Schreibe ein Skript zum konvertieren einer IP in HEX. Unten ist mein Skript:
import string
ip = raw_input('Enter IP')
a = ip.split('.')
b = hex(int(a[0])) + hex(int(a[1])) + hex(int(a[2])) + hex(int(a[3]))
b = b.replace('0x', '')
b = b.upper()
print b
Mein Problem ist, dass für IP-wie 115.255.8.97, erhalte ich dieses:
Antwort : 73FF861
Erwartet Ans : 73FF0861
Kann jemand, der clever genug ist, mir zu sagen, was für Fehler ich mache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
hex
Funktion nicht pad mit führender null.Verwenden
str.format
mit02X
format-Spezifikation:Oder verwenden Sie
binascii.hexlify
+socket.inet_aton
:sys.stdin
um alle Linien. Oder wiederholen Sie den Aufrufraw_input()
.Da hex nicht führender Nullen, die Sie verwenden können
zfill(2)
Nehmen wir die hex-Zahl nur mit
[2:]
entfernen ('0x') und dann fügen wir 2 führenden Nullen, wenn nötig.Beispiel-Ausgabe:
Beispiel-Ausgabe:
Edit1:
durch @Vulkan Wunsch können Sie ersetzen Sie mit Liste Verstehens:
Da python v3.5 können Sie nur:
https://docs.python.org/3/library/stdtypes.html#typebytes
In der obigen IP-zu-hex-Wandlung ausgegeben, wenn die Ausgabe mit '0' beginnen ex. 0aff0861 dann möchte ich löschen, die 0 und die Ausgabe soll sieht so aus, als aff0861. Gibt es eine direkte Methode zur Verfügung, die bei der Umwandlung.