Подтвердить что ты не робот

Как проверить, является ли IP-адрес локальным хостом в многоуровневой системе?

Для машины с несколькими NIC-картами есть удобный метод в Java, который сообщает, является ли данный IP-адрес текущим компьютером или нет. например.

boolean IsThisMyIpAddress("192.168.220.25");
4b9b3361

Ответ 1

Если вы ищете любой IP-адрес, действительный для локального хоста, вы должны проверить адреса локального хоста (например, 127.0.0.1), а также те, которые назначены для любых интерфейсов. Например...

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;
    }
}

С строкой, указывающей порт, вызовите это с помощью:

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