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.
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.