【问题标题】:How to resolve ip address to hostname?如何将IP地址解析为主机名?
【发布时间】:2019-09-29 04:03:13
【问题描述】:

我有一些 IP 地址,我想知道它的主机名是什么。 我怎样才能找到它? Java InetAddress 无法获取此信息,我检查了它。 IpInfo 数据库与 Java InetAddress 的结果相同。

【问题讨论】:

    标签: java networking ip


    【解决方案1】:

    如果是 IPv4,则需要创建一个 4 字节数组,每个字节都是地址的一部分。

    try {
        byte[] x = new byte[4];
    
        x[0] = (byte) 127;
        x[1] = (byte) 0;
        x[2] = (byte) 0;
        x[3] = (byte) 1;
    
        InetAddress inetHost = InetAddress.getByAddress(x);
        String hostName = inetHost.getHostName();
        System.out.println("The host name was: " + hostName);
        System.out.println("The hosts IP address is: " + inetHost.getHostAddress());
    
    } catch(UnknownHostException ex) {
    
        System.out.println("Unrecognized host");
    }
    

    【讨论】:

    • 不适合我,因为很多ip都没有这样解析。
    • 您对这些 IP 有什么看法?它们在您的主机文件中吗?
    • @Oleg 你能以不同的方式解决它们吗,比如在 shell 上使用dighost?如果不是,那么 Java 可能也不能。另请注意,并非每个 IP 地址都必须有主机名。
    • @Robert 我得到了 BBC.com 的 IP 地址,并尝试从这个 IP 地址获取他们的主机名,但我无法取回它,因为 InetAddress 没有解析这个主机名.
    • @Ali Ben Zarrouk 这是不是来自我的主机文件的 IP 地址,这是来自其他站点的 IP。
    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 2011-05-07
    • 2014-10-13
    • 2013-03-25
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多