我有一份IP列表。我需要尊重DNS,即我想要网站名称。
我尝试了以下内容:
InetAddress addr = InetAddress.getByName("98.138.253.109");
String host = addr.getCanonicalHostName();
System.out.println(host);
但是,我的示例中的IP是针对yahoo.com的,当我运行代码时,我得到:ir1.fp.vip.ne1.yahoo.com
我需要一种方法,这样我就可以通过输入IP来获取域名。
答案 0 :(得分:4)
您提供的代码中的IP地址解析为雅虎,因为它由雅虎持有。
您使用的IP地址仅指定给一个主机。你可以想象雅虎可能拥有数千台服务器。他们被分配了ipaddresses的分配,然后他们重新使用,因为他们认为适合内部分配。 yahoo域下的不同服务器具有不同的名称,因此当您从特定服务器引用IP地址时,您将获得该特定服务器的名称。对于yahoo.com的一般ipaddress可能是隐藏的,除非你想要nslookup并查询整个范围的ipaddress以找到yahoo.com分配并从那里进行概括。
答案 1 :(得分:4)
使用IP地址获取域名(以您期望的方式)可能无法实现。雅虎将有几台服务器,它们都将映射到域名yahoo.com。但是他们会有个人的IP地址和主机名。 addr.getCanonicalHostName()返回主机名而不是域名!