Java中IP地址转主机名?

25

我的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-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个回答

51

我尝试了这里的代码,它有效。具体来说:

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

2

当不需要反向查找时,这个函数只在本地工作,就像javadocs所说的那样:如果提供了一个字面量IP地址,则只检查地址格式的有效性。

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


2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接