Lesbare DhcpInfo.ipAddress?

8

Ich frage mich, wie man eine menschenlesbare IP Adresse von DhcpInfo.ipAddress bekommt? Das Schwierige daran ist, dass es sich um eine ganze Zahl handelt und man eine IP-Adresse natürlich nicht in einer ganzen Zahl speichern kann. Also, wie ist die IP-Adresse codiert, dass es in einem int gespeichert werden kann? Die Dokumentation bietet keine Hilfe für dieses Problem: Ссылка Danke: -)

    
stefan.at.wpf 14.06.2011, 14:58
quelle

5 Antworten

8

Sie können das tatsächlich.

IP-Adresse als int ist: AABBCCDD und in lesbarer Form ist es AA.BB.CC.DD , aber in dezimaler Basis. Wie Sie sehen, können Sie sie einfach mit bitweisen Operationen extrahieren oder indem Sie int in ein Byte-Array konvertieren.

Siehe das Bild:

    
Andrey 14.06.2011 15:02
quelle
7

Verwenden Sie diese Funktion NetworkUtils.java \ frameworks \ base \ core \ java \ android \ net)

%Vor%     
Ace 05.06.2012 04:40
quelle
5
  

Sie können natürlich keine IP-Adresse in einer Ganzzahl speichern

Eigentlich ist das alles eine IP (v4) -Adresse - eine 32-Bit-Ganzzahl (oder 128-Bit, im Fall von IPv6).

Das "menschenlesbare" Format, von dem Sie sprechen, wird erzeugt, indem die Bits der ganzen Zahl in Gruppen von 8 geteilt werden, die "Oktette" genannt werden und in die Basis 10 umgewandelt werden, z. " 192.168.0.1 ".

Die Bits dieser Adresse würden wie folgt aussehen (Leerzeichen zur besseren Lesbarkeit hinzugefügt):

%Vor%

Dies entspricht der Dezimalzahl 3,232,235,521.

    
Donut 14.06.2011 15:01
quelle
5

Wie von anderen Postern erwähnt, ist eine IP-Adresse 4 Bytes, die zu einem int gepackt werden können. Andrey gab eine schöne Illustration, die zeigt, wie. Wenn Sie es in einem InetAddress-Objekt speichern, können Sie ToString () verwenden, um die lesbare Version zu erhalten. Etwas wie:

%Vor%     
dschaeffer 14.06.2011 15:14
quelle
0

kehren Sie einfach die IP-Adresse um, die Sie in Bytes erhalten

%Vor%     
Muhammad Riyaz 14.11.2014 07:39
quelle

Tags und Links