Wie soll dieser Code aufgebaut werden?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Jede Gruppe der IPv4 ist ein Oktett. Es besteht aus 8 Bits, einem Byte, deshalb auch die möglichen Werte 0 bis 255.

Dieses Oktett kannst du auch als Hexadezimal-Werte darstellen, wie im Beispiel gegeben ist - oder eben die Binärdarstellung aller Oktette direkt hintereinander schreiben, um den Gesamtwert zu erhalten

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)

Am einfachsten wäre hier wohl, das String an den Punkten zu splitten, die Teile in Integer umzuwandeln und als Ziffern einer Zahl im 256er-System aufzufassen. Da man hier den Bereich der 32-Bit-signed-integer verlässt, empfiehlt es sich, long zu verwenden (Java kennt ja nativ keine unsigned integers).

(Wie man eine Zahl aus ihren Ziffern in einem beliebigen Stellenwertsystem berechnet, weißt du?)

Woher ich das weiß:Berufserfahrung – Software-Entwickler

Erkennt man am Beispiel doch recht gut:

192.168.0.1 -> 0xc0a80001 -> 3.232.235.521

Es werden einfach die einzelnen Oktetten der IPv4-Adresse in ihre Hexadezimaldarstellung umgewandelt und aneinander gekettet. 192 ist in hexadezimal beispielsweise 0xc0, 168 wiederum 0xa8. Zusammen ergibt das den obigen Hexadezimalwert. Und diese Hexadezimalzahl kann man dann ganz normal in dezimal umwandeln, wodurch man auf den angegebenen Wert kommt.

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung