我的主机文件(C:\ WINDOWS \ system32 \ drivers \ etc \ hosts)有一堆IP地址到主机名的映射:
# Switches
192.168.200.254 sw-con-ctrl
192.168.201.253 sw-con-ctrl-2
192.168.201.254 sw-con-ctrl-1
# 192.168.188.1 sw-con-ctrl-ylw-1
# 192.168.189.1 sw-con-ctrl-blu
192.168.190.62 access-console
# Routers
192.168.21.1 rtr1
192.168.22.1 rtr2
我正在尝试找到一种通过Java API以编程方式将IPAddress转换为HostName的方法。
伪代码:
IPAddress ip = new IPAddress("192.168.190.62");
String host = ip.getHost();
System.out.println(host); //prints "access-console"
我尝试了here中的代码,它可以正常工作。即:
InetAddress addr = InetAddress.getByName("192.168.190.62");
String host = addr.getHostName();
System.out.println(host);
这就像javadocs在不需要反向查询时所说的仅在本地进行工作:如果提供文字IP地址,则仅检查地址格式的有效性。
如果有人知道一种无需使用第三方jar进行远程查找的方法...
InetAddress
类中有相应的方法。我认为您会根据需要选择InetAddress
或getHostName
。
getHostName
输出:
ir2.fp.vip.ir2.yahoo.com