Czy istnieje jeden sposób na pobranie lokalnego ip, który będzie działał na każdym systemie, tak że zwróci lokalne ip zarówno na choćby Windowsie xp tak i na Linuksie czy innych systemach.
Dla linuksa działa mi ten (lecz na Windowsie XP zwraca "Test IP" czyli źle) sposób:
public static String getLocalIp() throws SocketException{
Enumeration<NetworkInterface> net = NetworkInterface.getNetworkInterfaces();
NetworkInterface element = net.nextElement();
Enumeration<InetAddress> addresses = element.getInetAddresses();
while (addresses.hasMoreElements()){
InetAddress ip = addresses.nextElement();
if (ip instanceof Inet4Address){
if (ip.isSiteLocalAddress()){
return ip.getHostAddress();
}
}
}
return "Test IP";
}
Zaś na windowsie działa sposób ten (lecz na linuksie, nie!- zwraca IP : 127.0.0.1):
String ipaddress = InetAddress.getLocalHost().getHostAddress();
Mam nadzieje że jest jakiś sposób na każdy system jedną metodą i że akurat ktoś z was mi go podsunie. Byłbym wdzięczny. W przeciwnym razie przed sprawdzaniem IP musiałbym sprawdzić z jakiego systemu jest uruchamiana aplikacja =.=.
Dziękuję i pozdrawiam.