Abrufen der IP-Adresse des aktuellen Computers mit Java

Ich versuche ein system zu entwickeln, wo es verschiedene Knoten, die auf verschiedenen system oder verschiedene ports auf demselben system.

Nun alle Knoten erstellt einen Socket mit einer Ziel-IP-Adresse als die IP eines speziellen Knotens bekannt als bootstrapping-node. Die Knoten dann erstellen Sie Ihre eigenen ServerSocket und starten Sie die überwachung von verbindungen.

Die bootstrapping-Knoten verwaltet eine Liste von Knoten und gibt diese in abgefragt werden.

Nun, was ich brauche, ist der Knoten muss sich registrieren, seine IP zu der bootstrapping-node. Ich habe versucht, mit cli.getInetAddress() sobald der client eine Verbindung zu der ServerSocket des bootstrapping-Knoten, aber das hat nicht funktioniert.

  1. Ich Brauch den client zu registrieren, Ihre PPP-IP, falls verfügbar;
  2. Andernfalls die LAN-IP, falls verfügbar;
  3. Ansonsten müssen sich registrieren 127.0.0.1 angenommen es ist der gleiche Rechner.

Verwenden Sie den code:

System.out.println(Inet4Address.getLocalHost().getHostAddress());

oder

System.out.println(InetAddress.getLocalHost().getHostAddress());

Meine PPP-Verbindung-IP-Adresse: 117.204.44.192 aber die oben genannten gibt mir 192.168.1.2

BEARBEITEN

Ich bin mit dem folgenden code:

Enumeration e = NetworkInterface.getNetworkInterfaces();
while(e.hasMoreElements())
{
    NetworkInterface n = (NetworkInterface) e.nextElement();
    Enumeration ee = n.getInetAddresses();
    while (ee.hasMoreElements())
    {
        InetAddress i = (InetAddress) ee.nextElement();
        System.out.println(i.getHostAddress());
    }
}

Ich bin in der Lage, alle IP-Adressen aller NetworkInterfaces, aber wie kann ich Sie unterscheiden? Das ist die Ausgabe die ich erhalte:

127.0.0.1
192.168.1.2
192.168.56.1
117.204.44.19

InformationsquelleAutor der Frage sasidhar | 2012-02-28

Schreibe einen Kommentar