Seite 1 von 1

Wie kann ich eine Integerzahl in eine IPV4 Adresse umrechnen?

Verfasst: Samstag 24. November 2018, 20:01
von TanjaLorenz
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.

Re: Wie kann ich eine Integerzahl in eine IPV4 Adresse umrechnen?

Verfasst: Samstag 24. November 2018, 20:08
von __deets__
ich habe das recht flott ergoogeln können. https://docs.python.org/3/library/ipaddress.html

Re: Wie kann ich eine Integerzahl in eine IPV4 Adresse umrechnen?

Verfasst: Samstag 24. November 2018, 22:41
von nezzcarth
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

Re: Wie kann ich eine Integerzahl in eine IPV4 Adresse umrechnen?

Verfasst: Sonntag 25. November 2018, 20:30
von TanjaLorenz
__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
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.

Kannst du mir mit ein paar Zeilen Code auf die Sprünge helfen?

Danke

Re: Wie kann ich eine Integerzahl in eine IPV4 Adresse umrechnen?

Verfasst: Sonntag 25. November 2018, 20:39
von __deets__
Da steht ein Beispiel, das genau das macht, was du willst. Offene Augen sind auch im Wald der Dokumentation notwendig.

Re: Wie kann ich eine Integerzahl in eine IPV4 Adresse umrechnen?

Verfasst: Sonntag 25. November 2018, 21:04
von snafu
@TanjaLorenz: Na, einfach die Funktion ip_address() nehmen und dahin die vorliegende Ganzzahl übergeben:

Code: Alles auswählen

print(ipaddress.ip_address(3221225985))
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.