Die Ganzzahl 3221225985 entspricht der IPV4 Adresse 192.0.2.1
Mit welchem Code kann ich die Ganzzahl in eine IPV4 Adresse umrechnen? In anderen Programmiersprachen liefert Google viele Ergebnisse, in Python leider nichts brauchbares.
Wie kann ich eine Integerzahl in eine IPV4 Adresse umrechnen?
ich habe das recht flott ergoogeln können. https://docs.python.org/3/library/ipaddress.html
Der Vollständigkeit halber: Die von __deets__ gezeigte Variante ist die bevorzugte, aber auch in Python geht natürlich der generische Weg über Bitshift und "Und", in dem man die einzelnen Oktette nach vorne schiebt und mit der Bitmaske '0.0.0.255' ver-und-et.
Code: Alles auswählen
In [1]: 3221225985 >> 24 & 255
Out[1]: 192
In [2]: 3221225985 >> 16 & 255
Out[2]: 0
In [3]: 3221225985 >> 8 & 255
Out[3]: 2
In [4]: 3221225985 & 255
Out[4]: 1
-
- User
- Beiträge: 8
- Registriert: Sonntag 8. April 2018, 09:28
Vielen Dank für den Link. Allerdings verstehe ich nicht, wie ich daraus einen Code schreiben kann. Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht.__deets__ hat geschrieben: ↑Samstag 24. November 2018, 20:08 ich habe das recht flott ergoogeln können. https://docs.python.org/3/library/ipaddress.html
Kannst du mir mit ein paar Zeilen Code auf die Sprünge helfen?
Danke
@TanjaLorenz: Na, einfach die Funktion ip_address() nehmen und dahin die vorliegende Ganzzahl übergeben:
Oder ist das eine Hausaufgabe? Wenn ja, dann sollte die Antwort von nezzcarth weiterhelfen. In dem Fall wäre die Programmiersprache auch nicht mehr so entscheidend (funktionale Programmierung und ähnliches mal außen vor gelassen), weil es nur auf die eigentliche Berechnung ankommt. Und natürlich braucht man ein wenig Basiswissen, damit man ein lauffähiges Programm hat.
Code: Alles auswählen
print(ipaddress.ip_address(3221225985))