4

我需要创建显示大量站点(理想情况下最多为 1 000 000)所需的所有 DNS 查询的列表。该列表需要将查询分配给需要它们的页面。

示例:访问 google.com 需要对 google.com、ssl.gstatic.com、apis.google.com 和其他网站进行 DNS 查询。我的名单会读到类似的东西

google.com:google.com,ssl.gstatic.com,apis.google.com,...

(此处不相关的确切格式)

我目前对如何做到这一点有两个想法:

  1. 设置带有日志记录的 DNS 服务器,使用我的 DNS 服务器作为解析器构建访问给定域列表的脚本
  2. 构建一个加载站点源代码的脚本(例如,想想 python 的 urllib2),解析所有嵌入的内容并构建一个需要的查询列表

但这两种想法都有问题。访问 1 000 000 个域,两次访问之间的间隔为 2 秒(以便之后可以将查询分配给访问的站点),加载大约需要 1 秒(这是非常乐观的)将需要 34 天以上,可能更长。但是要构建一个解析器,我需要一个包含所有可能形式的嵌入内容的完整列表,这些内容会导致 DNS 查询,并且我还需要查询一些目标 URL(想想 iframe),而有些内容是不可能的检查进一步的查询(想想连接到其他服务器的闪存内容)。

我有点卡在这里,希望能就如何处理这个问题提供一些意见。可以将 URL 列表缩短到大约 100 000 个,但任何更少都会显着减少结果的使用。

对于上下文:我的学士论文需要此列表,该列表涉及对提议的 DNS 隐私扩展的攻击策略。

4

2 回答 2

1

有一个工具可以做到这一点并生成图形表示。它是称为DNSpktflow(DNS 数据包流)的 dnssec-tools 的一部分

它可能不会完全按照您的要求做,但它是开源的,因此您可以看到他们是如何做到的。

于 2013-03-12T19:10:30.257 回答
1

您可以使用PhantomJS来执行此操作,因为它提供了一个接口,可以让您捕获网络请求并记录它们,类似于本示例的内容。

您需要编写一些简单的 Javascript,但由于它是 Node,因此异步运行它以在合理的时间内收集您需要的数据应该相当容易。

于 2013-03-12T19:49:41.767 回答