~/dnsniffer/guides·数据获取

▸ 如何获取新注册域名

构建新域名列表的七种方法 - 从自己动手对注册局区域文件做差分,到直接下载现成的新注册域名数据库。每种方法都附上真实延迟、覆盖盲区,以及可运行的命令。

阅读约 14 分钟
# 太长不看

▸ 简短的答案

并不存在一份「过去一小时内注册的所有域名」的单一数据源。注册局不发布这样的东西,ICANN 也没有要求他们发布。真正存在的是观测数据,而构建一份近期注册域名列表,靠的是选择与你的延迟容忍度和覆盖需求相匹配的观测方式:

  • ▸ 需要针对 gTLD 的权威性与完整性?对区域文件做差分。24 小时的时间下限,免费,但是实打实的工作量。
  • ▸ 需要速度和全部 TLD?证书透明度。落后签发仅数秒,但看不到没有证书的域名。
  • ▸ 今天下午就要能用?下载一份现成的列表 - 我们的就在下面,替代方案也在。
方法延迟覆盖范围成本投入
注册局区域文件差分(ICANN CZDS)约 24 小时约 1,150 个 gTLD免费高
证书透明度日志数秒至数分钟任意 TLD,仅限取得证书的域名免费中
DNSniffer 新检测数据集 / API每日文件,持续检测gTLD 区域 + 覆盖所有 TLD 的 CT免费低
免费公开 NRD 列表24-48 小时以 gTLD 为主,因发布方而异免费低
商业 NRD 数据源约 24 小时,部分按小时覆盖广,含部分 ccTLD付费低
被动 DNS数分钟至数小时解析器观测到的范围多为付费中
RDAP / WHOIS 验证按需逐个域名,权威日期免费(有速率限制)低,但不是发现来源
# 首先

▸ 「新注册」到底是什么意思

三个不同的时间戳被叫成同一个名字,而把它们混为一谈,正是一份新注册域名列表与别人的对不上的最常见原因:

  • 1. 注册日期 - 注册局创建记录的时间。具有权威性,可通过 RDAP/WHOIS 逐个域名查询,但没有任何人批量发布。
  • 2. 进入区域的时间 - 域名首次在 TLD 区域中拥有名称服务器的时间。通常在注册后数分钟到数小时,但一个注册后从未指向任何地方的域名根本不会出现。
  • 3. 首次观测 - 证书日志、解析器或爬虫第一次看到它的时间。这才是任何可下载数据源真正包含的内容,包括我们的。
实用原则:用观测数据做发现(这是唯一能批量拿到的东西),再用 RDAP 对你要采取行动的那部分做验证。跳过第二步,就是「24 小时 NRD 列表」里塞满三年前注册、只是昨天才拿到首张证书的域名的原因。
# 方法 1

▸ 对注册局区域文件做差分(ICANN CZDS)

最接近事实基准的东西。gTLD 注册局在合同上必须通过 ICANN 的集中式区域数据服务(CZDS)提供区域文件。你注册账号,按 TLD 提交说明用途的申请,由各注册局批准或拒绝 - 批准通常有效一年,之后需要续期。通过这种方式大约可以拿到 1,150 个 gTLD,包括 .com 和 .net。多数 ccTLD 则不行:少数几个(瑞典的 .se 和 .nu、瑞士的 .ch)公开发布,其余什么都不发布。

区域文件列出的是委派,不是注册。所以做法是:把今天的委派名称规范化,再减去昨天的。

# 1. Fetch today's zone (CZDS gives you a per-TLD download URL + API token)
curl -s -H "Authorization: Bearer $CZDS_TOKEN" \
     -o com.txt.gz "https://czds-api.icann.org/czds/downloads/com.zone"

# 2. Reduce the zone to a sorted list of delegated second-level names
zcat com.txt.gz \
  | awk '$4=="NS" {print tolower($1)}' \
  | sed 's/\.$//' \
  | sort -u > zone.today

# 3. Everything present today and absent yesterday is a new delegation
comm -13 zone.yesterday zone.today > new-domains-$(date +%F).txt
wc -l new-domains-$(date +%F).txt

# 4. Roll the window
mv zone.today zone.yesterday

注意这里用的是 $4=="NS" 而不是 $3:区域文件的行里带有可选的 TTL,列的下标会因此偏移。在相信字段编号之前,先检查一下你实际文件里的几行 - 这正是会悄无声息把你的列表清空的那个 bug。

这种方法会漏掉什么:已注册但未委派(没有名称服务器)的域名永远不会进入区域,因此在这里是不可见的。而一个到期后又重新出现的域名,看起来和首次注册完全一样 - 差分无法区分两者。如果这个区别对你重要,就保存一份你见过的所有名称的永久集合,并用它来核对新出现的名称。

存储方面的现实提醒:仅 .com 区域就有约 1.6 亿个委派名称,因此每天排序后的副本未压缩就有好几个 GB。保留两天的数据再加一个永久的已见集合,是最低可行的占用。

# 方法 2

▸ 跟踪证书透明度日志

每一张公开受信任的 TLS 证书都会被提交到仅可追加的证书透明度日志,而这些日志是公开的。由于真正在配置中的新注册域名几乎总会在几分钟内拿到证书 - 托管面板或反向代理会自动申请 - CT 是免费可得的最快的广覆盖发现渠道,而且与区域文件不同,它覆盖每一个 TLD,包括 ccTLD。

两条实用的入口:

# A. Consume an aggregated CT firehose (easiest)
#    e.g. CertStream-compatible websocket endpoints
websocat wss://certstream.calidog.io \
  | jq -r '.data.leaf_cert.all_domains[]?' \
  | sed 's/^\*\.//' \
  | sort -u

# B. Read the logs directly (RFC 6962) - no third party in the path
#    Each log exposes its tree head and a paged entries endpoint:
curl -s https://ct.googleapis.com/logs/us/argon2026h2/ct/v1/get-sth | jq .tree_size
curl -s "https://ct.googleapis.com/logs/us/argon2026h2/ct/v1/get-entries?start=0&end=9"

DNSniffer 采用的是方案 B。它工作量更大 - 你要为每个日志维护偏移量、解析叶子结构,并应对限速或限制单次请求条目数的日志 - 但你不必依赖别人的聚合服务一直在线。

三个陷阱。(1)证书带有 SAN,因此一张证书会产生很多名称,其中大多是子域名 - 要用公共后缀列表把每个名称归约到可注册域名,而不是靠数点号。(2)证书在不断续期,因此没有永久的首次出现集合,「今天在 CT 中见过」毫无意义。(3)首次出现在 CT 中的域名通常是新的,但并非总是 - 也可能是一个老域名刚拿到第一张证书。
# 方法 3

▸ 使用 DNSniffer 的新检测数据集

这就是你正在浏览的站点,所以请自行斟酌看待本节 - 但它之所以值得列入,是因为它就是前两种方法的组合,而且已经在运行。DNSniffer 摄取 gTLD 区域文件,直接读取证书透明度日志,把两者合并到一张域名表中 - 目前覆盖 10,624 个 TLD 上的 368,676,896 个活跃域名,并把其中新检测到的部分以纯 CSV 发布。

过去 24 小时
419,944
新检测到的域名
过去 7 天
3,005,636
新检测到的域名
过去 30 天
12,321,960
新检测到的域名

每日导出最近一次重建于 2026年10月15日 · 每天重新生成

三种使用方式,都不需要账号:

# 1. List the newly-detected exports and grab the current download URL
curl -s 'https://dnsniffer.com/api/v1/datasets?category=newly_detected' \
  | jq -r '.data[] | "\(.periodicity)\t\(.row_count)\t\(.download_url)"'

# 2. Download and read the daily file (zipped CSV)
URL=$(curl -s 'https://dnsniffer.com/api/v1/datasets?category=newly_detected' \
      | jq -r '.data[] | select(.periodicity=="daily") | .download_url')
curl -sL "https://dnsniffer.com$URL" -o nrd-daily.zip
unzip -p nrd-daily.zip | head

# 3. Filter to one TLD without downloading everything
unzip -p nrd-daily.zip | awk -F, 'NR==1 || $1 ~ /\.com$/'

如果你只关心与自己品牌或某个关键词匹配的名称,监控功能会在服务端完成筛选,并保留可通过 API 拉取的匹配历史 - 这需要一个免费账号而不是匿名下载,但比每天拉取 30 万行只为 grep 一个字符串便宜得多。最新域名页面在浏览器中展示同一数据流,而MCP 服务器则把它直接开放给 Claude、ChatGPT 等智能体。

和本页其他所有数据源一样的提醒,直说了:这些是新检测到的域名,不是经过验证的注册记录。多数是在过去一两天内注册的;也有一些是我们首次见到的老域名。在把某个日期当成事实之前,请用 RDAP 验证。
# 方法 4

▸ 免费公开 NRD 列表

一些安全厂商和爱好者每天以纯文本或压缩包的形式发布新域名列表 - 通常是昨天的注册,以 gTLD 为主,按固定时间发布。作为零投入的基线它们确实有用,但它们都有三个在依赖之前值得知道的弱点:发布方很少说明覆盖了哪些 TLD,文件在事发 24-48 小时后才出现,而且免费档位可能毫无预警地消失或改为需要注册。

如果免费列表是你的主要来源,请每天把它镜像到自己的存储里。价值在于累积下来的历史,而一个消失的数据源是无法事后补齐的。

# 方法 5

▸ 商业 NRD 数据源

WhoisXML API、DomainTools 等厂商以及各类威胁情报平台会出售新注册域名数据源,通常每天交付并附带 WHOIS 字段 - 注册商、注册日期、名称服务器,在未被隐去的情况下有时还有联系人数据。你付费买到的是三样东西:你自己拿不到的 ccTLD 覆盖、作为字段直接给出的注册日期(而不用逐个域名去查),以及由别人来运维这套采集。

签约之前值得问清楚的问题:

  • ▸ 究竟覆盖哪些 TLD,这份清单是公开的还是只是「有代表性的」?
  • ▸ 日期是注册局的注册日期,还是他们的首次观测时间?
  • ▸ 截止时间和交付延迟分别是多少小时?
  • ▸ 你是否可以再分发衍生数据,还是只能内部使用?
# 方法 6

▸ 被动 DNS

被动 DNS 提供商记录协作递归解析器所观测到的解析行为,为每个名称给出首次出现的时间戳。它能捕捉到区域文件漏掉的东西 - 子域名、ccTLD,以及在拿到证书之前就已经在解析的域名 - 同时天生带有偏差:你只能看到提供商传感器网络看到的部分,因此一个在某个国家被上百人使用的域名可能根本不会出现。请把它当作 CT 的有力补充,而不是独立的发现来源,并预期真正有量的数据是要付费的。

# 方法 7

▸ 用 RDAP 验证(不是发现来源)

RDAP 是 WHOIS 的结构化替代品,也是真正的注册日期唯一存在的地方。它无法枚举 - 按设计就没有「列出今天注册的所有域名」这种查询 - 但对任何一个具体名称,它能给出定论:

# rdap.org follows the IANA bootstrap, so you need not know the registry
curl -s https://rdap.org/domain/example.com \
  | jq -r '.events[] | select(.eventAction=="registration") | .eventDate'

# Filter a candidate list down to genuinely new registrations
while read -r d; do
  created=$(curl -s "https://rdap.org/domain/$d" \
            | jq -r '.events[]? | select(.eventAction=="registration") | .eventDate')
  [ -n "$created" ] && echo "$d,$created"
  sleep 1        # be polite: registry RDAP endpoints rate-limit aggressively
done < new-domains.txt > verified.csv
速率限制是实实在在的,而且各注册局各不相同。每天通过 RDAP 验证 30 万个域名并不现实 - 只验证真正重要的那部分(与你的品牌词匹配的、你打算拦截或购买的),而不是整个数据源。
# 整合起来

▸ 一条真正扛得住的流水线

无论你选哪些来源,都是同样这五个步骤,把一份持续有用的列表和一份悄悄烂掉的列表区分开来:

  1. 1. 规范化。转小写,去掉末尾的点,把 IDN 转换成 punycode(xn--),并通过公共后缀列表把每个名称归约到可注册形式。Example.CO.UK.、www.example.co.uk 和 example.co.uk 是同一个域名。
  2. 2. 保留一个永久的已见集合。「新」是相对于你曾经记录过的一切而言,而不是相对于昨天的文件。没有这一点,每当某个来源改变形态,你就会把老域名重新报一遍。
  3. 3. 分开存储首次出现时间和来源。一个在 09:00 出现在 CT、次日 03:00 又出现在区域差分中的域名,是一行记录加两次观测。覆盖写入会丢掉最早的信号,而那正是你在意的。
  4. 4. 先打分,再行动。原始 NRD 的体量远超人工审阅的能力。先筛到你需要的范围 - 与品牌相近的字符串、编辑距离相似的仿冒、可疑的 TLD、关键词组合 - 再用 RDAP 验证这份短名单。
  5. 5. 预期高流失。相当大一部分新注册域名会在数天内到期,而抢注又让同一个名称反复出现。在把某条记录当成有效资产之前,请重新检查它是否仍然存活。
# 坑

▸ 会让新域名列表出错的几个错误

  • ▸ 靠数点号来判断可注册域名。foo.co.uk 和 foo.uk 都是两段式的可注册形式,但依据的规则不同。请使用公共后缀列表。
  • ▸ 把区域中不存在当成域名不存在。已注册但未委派的域名,对任何基于区域的方法都是不可见的。
  • ▸ 忽略时区和截止时间。区域文件是注册局设定时刻的快照;你流水线里的「昨天」和文件里的「昨天」不是同一个窗口。
  • ▸ 把 CT 首次出现等同于注册。它是不错的近似,却是糟糕的事实。
  • ▸ 整份 NRD 数据源一律拦截。每天都有几十万个合法域名被注册;一刀切拦截产生的误报,远多于它避免的事件。先打分,再行动。
# faq

▸ 常见问题

? 什么算是新注册域名?

注册记录是在近期创建的域名 - 通常是过去 24 小时到 30 天之内,取决于你看的是谁的列表。权威字段是 RDAP/WHOIS 中的「registration」事件日期。下面每一种发现方法实际测量的东西都略有不同:区域文件差分测量的是域名首次拥有名称服务器的时间,证书透明度测量的是它首次获得 TLS 证书的时间。两者通常都落在注册后的数小时内,但都不是注册本身。

? 哪里可以免费获取新注册域名列表?

三条可行的免费路径:向 ICANN 的集中式区域数据服务申请,并把昨天的区域与今天的做差分;跟踪公开的证书透明度日志,保留首次出现的可注册域名;或者下载 DNSniffer 的新检测数据集,这是每天刷新的公开 CSV 导出 - 当前的每日文件包含 419,944 个域名。另有多家安全厂商也发布免费的每日 NRD 列表,通常滞后 24-48 小时,且仅限它们覆盖的 gTLD。

? 每天有多少域名被注册?

在全部 TLD 上,行业数字大约是每天 20 万至 35 万个新注册,不过这个毛数被抢注和数天内即到期的批量注册抬高了。DNSniffer 自身的检测速率是一个有用的近似:当前每日新检测导出包含 419,944 个域名,30 天导出为 12,321,960 个。

? 能实时获取新注册域名吗?

接近实时,但不能靠注册局区域文件 - 它们每天才发布一次,因此区域差分永远突破不了 24 小时的下限。想要更快的信号,你需要证书透明度(在证书签发后数秒内让域名浮现),或者被动 DNS(在有人第一次解析它时让它浮现)。真正在配置使用的新注册域名,大多在拿到首张 TLS 证书后几分钟内就会出现在 CT 中;停放域名则可能永远不会出现。

? 新注册域名数据库对安全有用吗?

有用 - 新注册域名在钓鱼、恶意软件 C2 和品牌仿冒活动中占比极高,因此很多机构会把访问注册未满 30 天域名的流量视为高风险。常见做法是把 NRD 列表与自己的品牌词及其近似变体做匹配,然后对命中项告警,而不是拦截整份列表。

? 如何查询某个具体域名的注册时间?

查询 RDAP,也就是 WHOIS 的结构化继任者:`curl -s https://rdap.org/domain/example.com` 会返回带有 `events` 数组的 JSON;其中 `eventAction: "registration"` 的那一项带有创建日期。rdap.org 会处理 IANA 引导,因此你不必知道哪个注册局负责该 TLD。请注意,部分 ccTLD 注册局会隐去或限速这类数据。

? 新注册域名和新检测域名有什么区别?

新注册意味着注册局创建了记录。新检测意味着某个观测方第一次看到了这个域名。检测滞后于注册 - 对于立即完成配置的域名是数小时,对于注册后一直闲置的域名则是数周甚至永远。你下载到的任何列表都是新检测列表;当注册日期真正重要时,请把它当作需要逐个域名用 RDAP 验证的东西。

想要这份列表,又不想自己搭流水线?新检测导出每天重建,可免费下载 - 当前 24 小时文件中有 419,944 个域名。