Wie bekomme ich die LAN IP eines Clients mit Java?

7

Wie bekomme ich die LAN IP-Adresse eines Computers mit Java? Ich möchte die IP-Adresse, die mit dem Router und dem Rest des Netzwerks verbunden ist.

Ich habe so etwas versucht:

%Vor%

Dies scheint in einigen Fällen zu funktionieren, aber manchmal gibt es die Loopback-Adresse oder etwas völlig anderes zurück. Außerdem benötigt es eine Internetverbindung.

Hat jemand eine genauere Methode, dies zu tun?

BEARBEITEN: Ich dachte, es wäre besser hier zu fragen als in einem Kommentar ..

Was ist, wenn Sie viele Schnittstellen haben? Zum Beispiel eins für Kabel, eins für WLAN und eins für virtuelle Box oder so. Ist es unmöglich, tatsächlich zu sehen, welcher mit dem Netzwerk verbunden ist?

    
cragiz 16.05.2010, 20:10
quelle

5 Antworten

15

Versuchen Sie java.net.NetworkInterface

%Vor%     
Alexander Pogrebnyak 16.05.2010, 20:16
quelle
7

Zuerst: Es gibt keine einzelne Adresse. Ihr Gerät hat mindestens zwei Adressen (127.0.0.1 auf "lo" und vielleicht 192.168.1.1 auf "eth1").

Sie möchten Folgendes: Netzwerkschnittstellen auflisten

Wie Sie vielleicht erwarten, können Sie nicht automatisch erkennen, welche Verbindung zu einem Ihrer Router besteht, da dies eine möglicherweise komplexe Analyse Ihrer Routingtabellen erfordert. Aber wenn Sie nur eine nicht-lokale Adresse wollen, sollte dies genug sein. Um sicher zu sein, versuchen Sie, dies mindestens einmal auf Vista oder Windows 7 zu verwenden, da sie IPv6-Adressen hinzufügen.

%Vor%

Es folgt eine Beispielausgabe vom Beispielprogramm:

%Vor%     
Daniel 16.05.2010 20:15
quelle
1
%Vor%     
Mahmoud Al-Qudsi 16.05.2010 20:16
quelle
1

Dies ist eine Methode, die ich seit einer Weile benutzt habe. Es beinhaltet einen kleinen Hack, um die extern sichtbare IP-Adresse herauszufinden.

%Vor%     
aioobe 16.05.2010 20:25
quelle
0

Wie Daniel bereits gesagt hat, kann man nicht wissen, welche Schnittstelle "verbunden" ist. Was ist, wenn der Computer beispielsweise über mehrere Netzwerkkarten verfügt, die beide an separate physische LANs angeschlossen sind?

Lassen Sie den Benutzer entscheiden, welche Schnittstelle verwendet werden soll, oder versuchen Sie alle, je nachdem, was Ihr Anwendungsfall ist.

    
andreasm 12.07.2013 18:43
quelle

Tags und Links