Java中主机名的IP地址?

问题描述 投票:23回答:4

我的主机文件(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"
java ip-address hostname hosts
4个回答
50
投票

我尝试了here中的代码,它可以正常工作。即:

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

2
投票

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

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


2
投票

InetAddress类中有相应的方法。我认为您会根据需要选择InetAddressgetHostName


0
投票
getHostName

输出:

ir2.fp.vip.ir2.yahoo.com

© www.soinside.com 2019 - 2024. All rights reserved.