如何在Java中进行反向dns查找

我有一份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来获取域名。

您提供的代码中的IP地址解析为雅虎,因为它由雅虎持有。

您使用的IP地址仅指定给一个主机。 你可以想象雅虎可能拥有数千台服务器。 他们被分配了一个ipaddresses的分配,然后他们重新使用,因为他们认为适合内部分配。 yahoo域下的不同服务器具有不同的名称,因此当您从特定服务器引用IP地址时,您将获得该特定服务器的名称。 对于yahoo.com的一般ipaddress可能是隐藏的,除非你想要nslookup并查询整个范围的ipaddress以找到yahoo.com分配并从那里推广。

使用IP地址获取域名(以您期望的方式)可能无法实现。 雅虎将有几台服务器,它们都将映射到域名yahoo.com。 但是他们会有个人的IP地址和主机名。 addr.getCanonicalHostName()返回主机名而不是域名!