gpt4 book ai didi

java - 如何检查 IP 地址是否是多宿主系统上的本地主机?

转载 作者:IT老高 更新时间:2023-10-28 20:51:27 24 4
gpt4 key购买 nike

对于具有多个 NIC 卡的机器,Java 中是否有一种方便的方法可以判断给定 IP 地址是否是当前机器。例如

boolean IsThisMyIpAddress("192.168.220.25");

最佳答案

如果您正在寻找对本地主机有效的任何 IP 地址,那么您必须检查特殊的本地主机(例如 127.0.0.1)地址以及分配给任何接口(interface)的地址。比如……

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

关于java - 如何检查 IP 地址是否是多宿主系统上的本地主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2406341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com