Java 如何检查IP地址是否是多主机系统上的本地主机?
对于具有多个NIC卡的机器,Java中是否有一种方便的方法来判断给定的IP地址是否为当前机器。e、 gJava 如何检查IP地址是否是多主机系统上的本地主机?,java,Java,对于具有多个NIC卡的机器,Java中是否有一种方便的方法来判断给定的IP地址是否为当前机器。e、 g boolean IsThisMyIpAddress("192.168.220.25"); 如果要查找对本地主机有效的任何IP地址,则必须检查特殊的本地主机(例如127.0.0.1)地址以及分配给任何接口的地址。例如 公共静态布尔值isThisMyIpAddress(InetAddress addr){ //检查地址是否为有效的特殊本地地址或回送地址 if(addr.isAnyLocalAdd
boolean IsThisMyIpAddress("192.168.220.25");
如果要查找对本地主机有效的任何IP地址,则必须检查特殊的本地主机(例如127.0.0.1)地址以及分配给任何接口的地址。例如
公共静态布尔值isThisMyIpAddress(InetAddress addr){
//检查地址是否为有效的特殊本地地址或回送地址
if(addr.isAnyLocalAddress()| | addr.isLoopbackAddress())
返回true;
//检查地址是否在任何接口上定义
试一试{
返回NetworkInterface.getByInetAddress(addr)!=null;
}捕获(SocketException e){
返回false;
}
}
使用指示端口的字符串调用此函数:
boolean isMyDesiredIp=false;
尝试
{
isMyDesiredIp=isThisMyIpAddress(InetAddress.getByName(“192.168.220.25”);/“localhost”表示本地主机
}
捕获(UnknownHostException unknownHost)
{
unknownHost.printStackTrace();
}
应该是InetAddress.getHostName(“ip来了”)。。。getbyHostName不存在。@AbhijeetKashnia:谢谢,但实际上它应该是InetAddress。getByName()
,getHostName()
是一个对象方法,而不是类方法,它做了一些不同的事情(它获取IP地址的主机名,例如使用反向DNS查找)。