Java中主机名的IP地址?

时间:2010-07-30 13:27:28

标签: java ip-address hostname hosts

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

4 个答案:

答案 0 :(得分:49)

我尝试了here中的代码,但它确实有效。即:

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

答案 1 :(得分:2)

InetAddress类中有方法。我认为您需要getHostNamegetCanonicalHostName,具体取决于您的需要。

答案 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