簡體   English   中英

如何檢查IP地址是否是多宿主系統上的本地主機?

[英]How to check if an IP address is the local host on a multi-homed system?

對於具有多個NIC卡的計算機,Java中是否有方便的方法來告知給定的IP地址是否是當前計算機。 例如

boolean IsThisMyIpAddress("192.168.220.25");

如果要查找對本地主機有效的任何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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM