2010-03-09 11 views

Odpowiedz

56

Jeśli szukasz dowolnego adresu IP, który jest ważny dla lokalnego hosta to musisz sprawdzić na specjalne lokalnego hosta (na przykład 127.0.0.1) rozwiązuje, a także tych, przypisanych do jakichkolwiek interfejsów. Na przykład ...

public static boolean isThisMyIpAddress(InetAddress addr) { 
    // Check if the address is a valid special local or loop back 
    if (addr.isAnyLocalAddress() || addr.isLoopbackAddress()) 
     return true; 

    // Check if the address is defined on any interface 
    try { 
     return NetworkInterface.getByInetAddress(addr) != null; 
    } catch (SocketException e) { 
     return false; 
    } 
} 

sznurkiem, co wskazuje port, nazywamy to z:

boolean isMyDesiredIp = false; 
try 
{ 
    isMyDesiredIp = isThisMyIpAddress(InetAddress.getByName("192.168.220.25")); //"localhost" for localhost 
} 
catch(UnknownHostException unknownHost) 
{ 
    unknownHost.printStackTrace(); 
} 
+0

To powinno być InetAddress.getHostName ("IP przychodzi tutaj") ... getbyHostName nie istnieje . –

+3

@AbhijeetKashnia: Dzięki, ale w rzeczywistości powinno to być 'InetAddress.getByName()', 'getHostName()' jest metodą obiektową, nie jest metodą klasy i robi coś innego (pobiera nazwę hosta dla adresu IP, np. jak przy użyciu odwrotnego wyszukiwania DNS). –

Powiązane problemy