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?
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%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.
Tags und Links java ip lan ip-address