gpt4 book ai didi

java - 如何为一个IP获取多个域名?

转载 作者:行者123 更新时间:2023-12-01 18:51:05 24 4
gpt4 key购买 nike

方法如下-

public static String getHostByAddr(byte[] addr) throws UnknownHostException {

Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));

final String[] servers = new String[] {"208.67.220.220", "208.67.222.222"};
final Resolver res = new ExtendedResolver(servers);
final Lookup lookUp = new Lookup(name, Type.PTR);
lookUp.setResolver(res);
Record[] records = lookUp.run();
if (records == null) {
throw new UnknownHostException();
}
return ((PTRRecord) records[0]).getTarget().toString();
}

这是对上述方法的调用-

    final InetAddress ip = InetAddress.getByName("198.154.218.168");
final byte[] bytes = ip.getAddress();
final String host = getHostByAddr(bytes);
System.out.println("Host - " + host);

在大多数情况下工作正常,但当 IP 映射到多个域时会失败 (???)

这是示例-

  1. 获取IP securonix.com来自here ,是198.154.218.168
  2. 如果我将此 IP 传递给上述方法,则会出现错误
  3. 但是如果我尝试相同的 IP here ,它列出了 4 个域

是否可以使用DNSJava来做到这一点?

最佳答案

一般来说,你不能。正如域 securonix.com 的所有者在其 DNS 服务器上创建了一个条目,将 securonix.com 转换为 198.154.218.168 一样,IP 地址 198.154.218.168 的所有者也维护一个“反向”DNS 记录(通常在单独的服务器上)将 IP 地址映射到默认 DNS 名称。有关反向 DNS 查找的更多信息,请参阅维基百科上的“Reverse DNS lookup”页面,并注意反向 DNS 查找(从 IP 地址到名称)通常由与域名所有者不同的所有者维护,并且不只是通过交换名称和 IP 地址“自动”创建。

此外,您提到的网站似乎没有该 IP 地址的反向 DNS 条目,因此您永远不会从标准 DNS 查询中获得 198.154.218.168 的答案;根本没有 198.154.218.168 的(反向)DNS 条目,上面的代码失败了。

作为正向和反向 DNS 查找之间差异的示例,当我第一次分配静态 IP 地址时,我的提供商 (Comcast) 将 IP 地址映射到某个通用名称,例如 75-148-###-# ##-Houston.hfc.comcastbusiness.net(随机 IP 地址示例),我要求他们修改反向 DNS 条目以映射到我的域名称,以便对 IP 地址和域名进行正向和反向查找匹配。他们在他们的 DNS 服务器上维护 IP 地址的查找,而我在我的 DNS 服务器上维护域名的查找。

yougetsignal.com 的页面一定一直在对名称进行 DNS(正向)查找,并将它们存储在可供购买的庞大数据库中,这使得网页可以找到具有相同 IP 的所有名称。但是,没有简单的方法可以通过查询 DNS 服务器来对任意 IP 地址执行此操作,除非您拥有大量附加信息或已经完成了数百万次类似该网站的查找。

关于java - 如何为一个IP获取多个域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15919361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com