我的主机文件(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-blk-1
# 192.168.189.1 sw-con-ctrl-red
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"
答案 0 :(得分:49)
我尝试了here中的代码,但它确实有效。即:
InetAddress addr = InetAddress.getByName("192.168.190.62");
String host = addr.getHostName();
System.out.println(host);
答案 1 :(得分:2)
InetAddress
类中有方法。我认为您需要getHostName
或getCanonicalHostName
,具体取决于您的需要。
答案 2 :(得分:1)
这有效,因为javadocs只说本地时不需要反向查找: 如果提供了文字IP地址,则仅检查地址格式的有效性。
如果有人不知道使用第三方罐子进行远程查找......
答案 3 :(得分:0)
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Main02{
public static void main(String[]args) throws UnknownHostException{
InetAddress ia = InetAddress.getByName("46.228.47.114");
System.out.println(ia.getHostName());
}
}
输出:
ir2.fp.vip.ir2.yahoo.com