Konvertieren Sie die IP-Adresse string in binary in Python
Als Teil einer größeren Anwendung, die ich versuche zu konvertieren einer IP-Adresse in Binär. Zweck in der späteren Berechnung der broadcast-Adresse für Wake-on-LAN-Verkehr. Ich gehe davon aus, dass es eine viel mehr effiziente Art und Weise zu tun, so wie ich bin, zu denken. Das ist das Aufbrechen der IP-Adresse Oktett-addition 0 ist zu Beginn jedes Oktett, wo notwendig, konvertieren jedes Oktett an binären und die Ergebnisse dann zusammengefasst. Sollte mich netaddr, Steckdosen, oder etwas ganz anderes?
Beispiel: Von 192.168.1.1 11000000.10101000.00000001.00000001
- Sind Sie auf der Suche zu konvertieren, eine IPv4-Adresse in die Ganzzahl-Darstellung? Oder was binäre Darstellung sind, die Sie versuchen zu konvertieren?
- Beispiel: Von 192.168.1.1 11000000.10101000.00000001.00000001
- Das ist eine äußerst ungewöhnliche Art und Weise auszudrücken IPAdressen. Ich glaube nicht, dass ein Modul existiert, zu produzieren oder zu konsumieren, das format.
- Die Art und Weise, die Sie planen, ist völlig in Ordnung und leistungsfähig genug, IMHO.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du denkst an so etwas wie unten ?
Ich Stimme mit anderen, Sie sollten wahrscheinlich vermeiden, zum konvertieren in binäre Darstellung zu erreichen, was Sie wollen.
[... for x in ... ]
Teil anschauen list comprehension in python-Dokumentation.Ist Buchse.
inet_aton()
das, was Sie wollen?bin(struct.unpack('!I', socket.inet_aton('192.168.1.1'))[0])
->'0b11000000101010000000000100000001'
ipaddr
(siehe PEP 3144):In Python 3.3,
IP-Adresse
- Modul:Entsprechen dem Beispiel in deiner Frage genau:
Können Sie die Verwendung von string-format-Funktion konvertiert die Zahl in eine Binärzahl um. Ich habe diese Funktion:
Wird das Ergebnis ein Binär-IP oder IP-range, so können Sie es verwenden, um zu testen, ob eine IP in einem Bereich:
Definieren Sie die IP-Adresse in variable
konvertieren IP-Adresse in der Liste
Jetzt konvertieren Sie die IP-Adresse in Binär-zahlen
Ausgabe