InetAddress address = InetAddress.getByName("192.168.1.125");
System.out.println(address.getHostName());
System.out.println(address.getCanonicalHostName());上面的IP是我公司一个网络视频监控设备的IP,我用InetAddress 的两个方法都得不到主机名/域名,只返回打印“192.168.1.125”,但可以用这两个方法得到局域网内电脑的主机名。
请指教,这是什么原因造成的。

解决方案 »

  1.   

    public String getCanonicalHostName()方法用来获取此 IP 地址的完全限定域名。
     
    如果有安全管理器,则此方法首先使用主机名和 -1 作为参数调用其 checkConnect 方法,来查看是否允许调用代码知道此 IP 地址的主机名(即是否允许连接到该主机)。如果不允许该操作,则其返回 IP 地址的文本表示形式。可能是因为不允许连接到主机才返回192.168.1.125的...