Java: IP-Adressse in 32 Bit Zahl umwandeln?

2 Antworten

Ja was ist daran schwierig?

Du hast 4x den Zahlenbereich von 0-255 also 4 x 8 Bit, daher jeden Abschnitt in die 8 Bit Zahl wandeln und alles aneinander reihen.

Z.B. aus meinem Heimnetzwerk

Mein Handy hat die IP4 Adresse 192.168.2.104

128 = 1xxxxxxx

64 = x1xxxxxx

32 = xx1xxxxx

16 = xxx1xxxx

8 = xxxx1xxx

4 = xxxxx1xx

2 = xxxxxx1x

1= xxxxxxx1

Also erster Abschnitt

192 -128 = 1xxxxxxx (Rest 64)

64 - 64 = x1xxxxxx (Rest 0)

Da wir Rest 0 haben ergibt sich für 192 = 11000000

dann der zweite Block 168

168 - 128 = 1xxxxxxx (Rest 40)

Minus 64 passt für den Rest nicht also = x0xxxxxx

40-32 = xx1xxxxx (Rest 8)

Minus 16 passt für den Rest nicht also = xxx0xxxx

8-8 = xxxx1xxx (Rest 0 also Rest mit nullen füllen)

Es ergibt sich für 168 = 10101000

Ich denke du solltest das Prinzip nun verstanden haben:

192.168.2.104 = 11000000.10101000.00000010.01101000

Nun die Punkte weglassen:

11000000101010000000001001101000

Fertig

Eine IP-Adresse ist ein 32-Bit unsigned integer in NBO.

Sofern Du einen String mit typischer Darstellung meinst, da könnte Dir InetAddress helfen.

PrinceSaid  23.09.2022, 08:43

Ich denke es geht darum einen IP mit den geeigneten bitweisen Operatoren in einen uint32 zu überführen. Das ist eigentlich eine ganz schöne Aufgabe um zu lernen wie bitweise Operatoren und Verschiebungen funktionieren.

0