Echte (externe) eigene IP herausfinden

DeRal

Grünschnabel
Hi,
ich brauche für einen Chat-Server/Client Programm eine Möglichkeit, die IP des eigenen Rechners herauszufinden, wenn sich der Client auf dem gleichen Computer wie der Server befindet. Wenn sich ein Client von einem anderen Rechner verbindet, geht es, wenn ich den Client aber auf dem gleichen PC starte, erhalte ich als Adresse 127.0.0.1, was natürlich zu Problemen führt, wenn die Nachrichten versendet werden. (die Clients versenden die Nachrichten P2P)
Zum rausfinden der IP verwende ich folgendes Codestück:
Code:
parent.addUserToList(client.getInetAddress().getHostAddress(), reqArr[1]);
client ist dabei vom Typ Socket.
Kennt jemand eine Lösung?
 
Um die eigene IP herauszubekommen eignet sich eig. die Methode getLocalHost() der Klasse InetAddress immer sehr gut. Da wählt Java allerdings selber das Interface. Wenn das zu Problemen führt kannst du über die Klasse NetworkInterface, dir mit der Methode getNetworkInterfaces() alle Interface geben lassen und dir da dann das richtige raussuchen und dann davon die InetAddress besorgen.

Habe allerdings die Erfahrung gemacht, dass getLocalHost() von InetAddress meistens schon ausreicht.

MfG Technoblade
 
Das hat mich noch mal auf ne Idee gebracht. Habe jetzt eine, wie ich finde, nicht besonders elegante Variante gewählt, dafür läuft sie aber... ;)
Code:
String addr = client.getInetAddress().getHostAddress();
if(!addr.equals("127.0.0.1")){
	parent.addUserToList(addr, reqArr[1]);
} else {
	parent.addUserToList(InetAddress.getLocalHost().getHostAddress(), reqArr[1]);
}
 
Zurück