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();
}
To powinno być InetAddress.getHostName ("IP przychodzi tutaj") ... getbyHostName nie istnieje . –
@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). –