JAVA 中的 IP 地址到主机名?

2022-09-01 20:10:00

我的主机文件(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"

答案 1

从这里尝试了代码,它的工作原理。即:

  InetAddress addr = InetAddress.getByName("192.168.190.62");
  String host = addr.getHostName();
  System.out.println(host);

答案 2

这就像javadocs说的那样,当不需要反向查找时,它只本地:如果提供了文字IP地址,则只检查地址格式的有效性。

如果有人知道一种方法,而无需使用第三方jar来进行远程查找...