24

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

4 回答 4

50

我从这里尝试了代码,它可以工作。即:

  InetAddress addr = InetAddress.getByName("192.168.190.62");
  String host = addr.getHostName();
  System.out.println(host);
于 2010-07-30T13:39:46.960 回答
2

类中有用于此的方法InetAddress。我想你会想要getHostNamegetCanonicalHostName,这取决于你的需要。

于 2010-07-30T13:36:25.273 回答
2

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

如果有人知道不使用第三方罐子进行远程查找的方法......

于 2013-02-03T15:44:44.580 回答
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

于 2019-12-14T09:28:25.693 回答