我需要创建显示大量站点(理想情况下最多为 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,...
(此处不相关的确切格式)
我目前对如何做到这一点有两个想法:
- 设置带有日志记录的 DNS 服务器,使用我的 DNS 服务器作为解析器构建访问给定域列表的脚本
- 构建一个加载站点源代码的脚本(例如,想想 python 的 urllib2),解析所有嵌入的内容并构建一个需要的查询列表
但这两种想法都有问题。访问 1 000 000 个域,两次访问之间的间隔为 2 秒(以便之后可以将查询分配给访问的站点),加载大约需要 1 秒(这是非常乐观的)将需要 34 天以上,可能更长。但是要构建一个解析器,我需要一个包含所有可能形式的嵌入内容的完整列表,这些内容会导致 DNS 查询,并且我还需要查询一些目标 URL(想想 iframe),而有些内容是不可能的检查进一步的查询(想想连接到其他服务器的闪存内容)。
我有点卡在这里,希望能就如何处理这个问题提供一些意见。可以将 URL 列表缩短到大约 100 000 个,但任何更少都会显着减少结果的使用。
对于上下文:我的学士论文需要此列表,该列表涉及对提议的 DNS 隐私扩展的攻击策略。