如何查找托管在单个主机上的所有域?

信息安全 dns
2021-08-16 02:36:22

我发现有几个网站提供了一个功能,允许您列出托管在同一台机器上的所有域,例如您提供a.com的,它告诉您b.com and c.com都托管在与 a.com 相同的机器上。

他们是怎么知道的?

我的第一个想法是在 a.com 上进行 DNS 查找,找到其 IP,然后对所有这些 IP 进行反向 IP 查找以查看是否有任何域匹配。

在这种情况下,该过程预计会很慢,但网站几乎立即返回结果,所以他们一定不能使用这种方法。

3个回答

正如您所说,绝对没有办法列出机器上“托管”的所有域。

首先,您想要做的只会给您附加到 PTR 记录的名称(将 DNS 反向到 IP)。它不会为您提供指向它的 A 记录列表。

关于 DNS,您必须了解的是,它们充当关联 IP 地址和主机名的数据库。可能有多个 DNS 服务器,其记录指向(带有 A 记录)单个主机。但是也没有办法知道哪些服务器有效地托管了这些记录,因为没有任何类型的 DNS 查询向 DNS 服务器询问指向特定 IP 的 A 记录。

您提到了网站提议“查询”某个 IP 以了解哪些网站托管在其上。所有这些网站所做的,都是将公共网站(和主机名)与其附加的 IP 地址之间的数据库关联存储在数据库中,并在 IP 上建立索引。这只有在他们可以向您保证他们在全球范围内浏览了整个 www 并且他们的信息是准确的时才有效,这是他们不能做到的,因为他们是私人托管的数千个“网站”(没有搜索引擎索引,也没有交叉-links),其他人四处走动并改变IP等......

我希望这个解释足够清楚并有所帮助。

他们对每个域名进行 DNS 查找,然后列出哪些域名具有相同的 IP 地址。这会保存到数据库中,因此如果您搜索“新”域名,它只会进行一次 DNS 查找(针对该域的 A 记录),然后在其数据库中查询具有该 IP 地址的所有主机。主机上的域名列表可能不完整。

我们的站点https://host.io是一个执行此操作的站点,例如https://host.io/facebook.com#shared向您显示 fb.com 也托管在同一 IP 地址上。

我们(和其他人)创建此数据的方式是从域列表开始,然后将它们全部解析为 IP 地址。该数据存储到数据库中,然后您可以反向查询它,因此找到具有特定 IP 地址的所有域的列表。

我们对反向链接数据做类似的事情。我们抓取所有域的网站,存储链接数据,然后我们可以找到链接到特定域的所有网站。

您可以定期执行此操作(我们每月执行一次),然后随着时间的推移跟踪更改,并回答诸如“此域在 2 年前托管在哪里”或“本月哪些新域开始链接到该域”之类的问题.