我需要创建一个显示大量网站所需的所有DNS查询的列表(理想情况下最多为1 000 000)。该列表需要将查询分配给需要它们的页面。
示例:访问google.com需要对google.com,ssl.gstatic.com,apis.google.com和其他网站进行DNS查询。我的清单会读到
的内容google.com:google.com,ssl.gstatic.com,apis.google.com,...
(确切格式与此无关)
我目前有两个关于如何做到这一点的想法:
但这两个想法都存在问题。访问1 000 000个域,访问之间的间隔为2秒(以便之后可以向访问的站点分配查询),加载大约1秒(非常乐观)将花费34天,可能更长。但是要构建解析器,我需要一个完整的列表,列出所有可能形式的嵌入式内容,这将导致DNS查询,我还需要查询一些目标URL(想想iframe),有些内容是不可能的检查进一步的查询(想想连接到其他服务器的flash内容)。
我有点被困在这里,并希望得到一些关于如何处理这个问题的意见。可以将URL列表缩短到10万,但任何不足都会大大减少结果的使用。
对于上下文:我的学士论文需要此列表,处理有关建议的DNS隐私扩展的攻击策略。
答案 0 :(得分:1)
有一个工具可以做到这一点并产生图形表示。它是名为DNSpktflow(DNS数据包流)
的dnssec工具的一部分它可能无法完全按照您的要求进行,但它是开源的,因此您可以看到它们是如何做到的。
答案 1 :(得分:1)
您可以使用PhantomJS来执行此操作,因为它提供了一个界面,可让您捕获网络请求并记录它们,这与this example一样。
您需要编写一些简单的Javascript,但作为它的Node,以异步方式运行它以在合理的时间内收集所需的数据应该相当容易。