Pobranie lokalnego ip - sposób na każdy system

0

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.

0

Usuń ifa, sprawdzającego czy to adres lokalny. Nie ma on tu sensu ponieważ i tak lecisz po lokalnych interfesach sieciowych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1