scripting - 确定显示网站所需的所有 DNS 查询

标签 scripting dns automation

我需要创建显示大量站点(理想情况下最多 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),并且某些内容是不可能的检查进一步的查询(想想连接到其他服务器的 Flash 内容)。

我有点被困在这里,希望得到一些关于如何处理这个问题的意见。可以将 URL 列表缩短到大约 100 000 个,但如果再少,就会大大减少结果的使用。

背景信息:我的学士论文需要这份列表,该论文涉及针对拟议的 DNS 隐私扩展的攻击策略。

最佳答案

您可以使用PhantomJS为此,它提供了一个接口(interface),可让您捕获网络请求并记录它们,类似于this example .

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

关于scripting - 确定显示网站所需的所有 DNS 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338088/

相关文章:

python - 交互式 CLI 包 - 复选框和选择

.net 脚本语言

javascript - 在模板中使用定位器名称来编写更简单的 E2E 测试是一个坏主意吗?

java - 用于启动和配置多个程序的 Python 脚本

c# - 统一编写txt文件时,它说在路径上共享冲突

c# - Azure 网站添加子域

flash - 在 AS3 中获取域

azure - 反向代理子文件夹到子文件夹

.net - 以编程方式将受信任的站点添加到 Internet Explorer

javascript - 如何在 EA 自动化中找到将注释链接到连接器(以及将注释链接到元素)的注释链接