SuperAPI AI 工具集

domain-check

部署与运维

查看项目

更新于 10-23 09:39

技能介绍

domain-check 是一个与平台无关的域名检查工具,核心目标是回答域名“可用 / 已占用”的二元问题,并在所有来源一致时给出高置信度(资料说明为 100%)。对于已占用域名,它会内联返回最相关的信息:SSL 证书、服务器 IP、到期日期。

主要能力

  • 单域检查(check):以 JSON 输出结果。已占用时包含 verdict、confidence、summary、expiration_date(或 expiration_note)、registrar、nameservers、ip_addresses、ssl 详细信息(issuer、subject、valid_to、days_until_expiry、fingerprint_sha256、ip_address、matches_hostname 等)以及 evidence(5–6 个来源及其强度与原因)。可用时返回精简结果,不含 SSL/IP 区块。另有 Reserved / Unclear 判定及诊断证据。
  • 批量检查(bulk):最多 8 个域名并行,输出 NDJSON,也支持 --format=json 输出单个 JSON 数组、--format=table 输出可读表格;可从命令行参数、--file 文件或 --stdin 读取域名。
  • SSL 证书查询(ssl):可指定端口(默认 443),返回 issuer、subject、SAN、有效期、剩余天数、SHA-256 指纹、协议、加密套件及 TLS 连接实际 IP。
  • 解析(resolve):从 URL 或主机名提取域名,解析 IPv4 与 IPv6,并对前 3 个 IP 做反向 DNS。
  • 命名辅助:suggest 从种子关键词生成带评分(0.0–1.0)的候选域名,支持多种构词模式与用例类型;--check 可对排名靠前的候选做可用性检查;score 对单个裸名称给出启发式评分明细。

判定机制(TLD 感知决策树)

  • gTLD(.com、.net、.io、.ai、.app 等):ICANN 要求 RDAP,RDAP 无对象即视为 100% 可用。
  • GDPR 国家/地区顶级域(.de、.eu、.at、.ch、.es 等):注册局通常对 RDAP/WHOIS 做脱敏,因此改用对注册局 NS 的权威 DNS 查询:有 NS 记录即已注册,NXDOMAIN 即可用。
  • 未知/经销商 TLD:通过 whois.iana.org 实时发现 WHOIS 服务器并持久缓存;若响应仅含免责声明而无域名/注册商字段,则启发式视为可用。

使用方式 所有命令在该技能目录下运行,Linux、macOS、Windows 调用方式一致;Windows 上必要时用 python 代替 python3。

python3 scripts/domain_check.py check example.com python3 scripts/domain_check.py bulk example.com example.org example.net python3 scripts/domain_check.py ssl example.com python3 scripts/domain_check.py resolve https://example.com/path

批量示例: python3 scripts/domain_check.py bulk --file domains.txt --format=table echo -e "example.com\nexample.org" | python3 scripts/domain_check.py bulk --stdin

建议与评分示例: python3 scripts/domain_check.py suggest graph --use-case ai_tool --count 20 python3 scripts/domain_check.py suggest cloud --use-case indie_saas --check --check-top 5 python3 scripts/domain_check.py score lumenforge

适用场景

  • 快速确认某域名是否已被注册,并同时获取注册商、NS、IP、证书与到期信息。
  • 批量筛选候选域名,配合表格或 NDJSON 输出做管道处理。
  • 在起名、品牌或产品命名过程中,按指南生成候选并筛掉不可购买的名称。
  • 其他技能可直接导入 _lib 模块复用,例如 from _lib.orchestrator import check_domain,再 await check_domain("example.com")。

限制与边界

  • 无依赖要求:整个技能仅使用 Python ≥ 3.11 标准库(argparse、asyncio、dataclasses、datetime、hashlib、io、json、os、pathlib、re、secrets、socket、ssl、struct、sys、tempfile、time、typing、urllib)。若 Python 构建缺少 SSL 模块,仅 ssl 子命令失败,其余仍可用。
  • GDPR 顶级域可能不公开到期日期,此时 expiration_date 为 null,并由 expiration_note 说明原因。
  • .ch/.li/.es 对匿名 IP 屏蔽注册局 WHOIS 43 端口,以权威 DNS NS 查询为主要来源。
  • 针对 DENIC、AFNIC、SIDN 的速率限制,批量并发上限为 8;遇到 HTTP 429 会做一次短退避重试。
  • IDN 域名自动转 Punycode;无效 IDN 回退为小写 ASCII,不会崩溃。
  • 性能参考:单次检查通常约 2–4 秒;30 个域名约 10–15 秒。
  • 评分器只是合理性辅助,不是真理;zoom、slack、stripe 等真实品牌分数低于 0.8 属于正常,应将其用于发现明显红旗而非作为门槛。
  • 涉及任何域名命名请求时,资料要求先完整阅读 references/naming_guide.md,该指南是候选方案创作的唯一依据。

架构(维护参考) scripts/domain_check.py 为 CLI 入口;_lib/ 包含 tld_classifier.py(TLD 分类)、rdap.py(带 IANA 引导缓存的 RDAP 客户端)、whois_client.py(WHOIS socket、30+ TLD 模式、IANA 发现与启发式回退)、auth_dns.py(原生 UDP DNS 解析)、presence.py(DNS A/AAAA、HTTP/HTTPS、带 CN/SAN 匹配的 TLS 证书)、verdict.py(可用/已占用判定与置信度)、orchestrator.py(异步扇出与报告)。