Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为单个IP获取多个域?_Java_Dnsjava - Fatal编程技术网

Java 如何为单个IP获取多个域?

Java 如何为单个IP获取多个域?,java,dnsjava,Java,Dnsjava,方法是这样的- 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

方法是这样的-

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映射到多个域时失败(?)

下面是一个例子-

  • 从中获取IP,它是198.154.218.168
  • 如果我将这个IP传递给上面的方法,它会给出错误
  • 但是如果我尝试相同的IP,它会列出4个域

  • 有没有可能这样做?

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

    此外,您提到的站点似乎没有该IP地址的反向DNS条目,因此您永远无法从标准DNS查询中获得198.154.218.168的答案;198.154.218.168没有(反向)DNS条目,上述代码失败

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


    yougetsignal.com上的页面必须对名称进行DNS(正向)查找,并将其存储在可供购买的大型数据库中,这样网页才能找到具有相同IP的所有名称。但是,对于任意IP地址,通过查询DNS服务器并没有简单的方法可以做到这一点,除非您有大量的额外信息,或者已经完成了数百万次类似于该站点的查找。

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

    此外,您提到的站点似乎没有该IP地址的反向DNS条目,因此您永远无法从标准DNS查询中获得198.154.218.168的答案;198.154.218.168没有(反向)DNS条目,上述代码失败

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


    yougetsignal.com上的页面必须对名称进行DNS(正向)查找,并将其存储在可供购买的大型数据库中,这样网页才能找到具有相同IP的所有名称。但是,对于任意IP地址,要通过查询DNS服务器实现这一点并不容易,除非您有大量的附加信息,或者已经完成了数百万次类似于该站点的查找。

    我发现有两个网站提供了这一功能。但是我不知道他们是如何实现这个功能的

    更新:
    域工具提供api调用。也许您可以调用domaintools api为单个IP获取多个域名。

    我发现有两个网站提供了此功能。但是我不知道他们是如何实现这个功能的

    更新: 域工具提供api调用。也许您可以调用domaintools api为单个IP获取多个域名