域名一站式检测接口,并行执行 WHOIS、DNS、SSL/TLS、HTTPS 探测,单次调用拿到全部信息,任一子项失败不影响其它子项。
鉴权
所有接口均需在请求头中携带访问令牌:
Authorization: Bearer tf_xxxxxxxxxxxxxxxx
令牌在 用户设置 → 访问令牌 页面创建,创建时需勾选对应权限:
| 权限 | 说明 |
|---|---|
read:tools_domain |
调用域名检测接口 |
频率限制
| 范围 | 上限 |
|---|---|
| 单用户 / 单分钟 | 10 次 |
| 单用户 / 单日 | 200 次 |
超限返回 429。
接口列表
1. 检测域名
POST /api/tools/domain/check
所需权限:read:tools_domain
并行查询目标域名的 WHOIS / DNS / SSL / HTTP 四块信息。
请求体(JSON)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
domain |
string | 是 | 裸域名,不含 http(s)://、路径、端口。例:google.com |
返回值
{
"success": true,
"data": {
"domain": "google.com",
"checked_at": "2026-06-01T08:00:00.000Z",
"whois": {
"registrar": "MarkMonitor, Inc.",
"created_at": "1997-09-15T04:00:00Z",
"updated_at": "2024-08-02T02:17:33Z",
"expires_at": "2028-09-14T04:00:00Z",
"registrant": "Google LLC",
"registrant_country": "US",
"name_servers": ["ns1.google.com", "ns2.google.com"],
"status": ["clientTransferProhibited"]
},
"dns": {
"A": ["142.250.198.78"],
"AAAA": ["2404:6800:4005:81b::200e"],
"CNAME": [],
"MX": ["10 smtp.google.com"],
"NS": ["ns1.google.com.", "ns2.google.com."],
"TXT": ["v=spf1 include:_spf.google.com ~all"]
},
"ssl": {
"subject_cn": "*.google.com",
"subject_alt_names": "DNS:*.google.com, DNS:*.appengine.google.com",
"issuer_cn": "WR2",
"issuer_o": "Google Trust Services",
"valid_from": "2026-05-12T08:42:12.000Z",
"valid_to": "2026-08-04T08:42:11.000Z",
"days_to_expire": 64,
"fingerprint_sha256": "5A:7B:..."
},
"http": {
"status": 200,
"server": "gws",
"content_type": "text/html; charset=ISO-8859-1",
"x_powered_by": null,
"final_url": "https://www.google.com/",
"redirect_chain": [
{ "status": 301, "location": "https://www.google.com/" }
],
"elapsed_ms": 243
}
}
}
子项查询失败时,对应块会带 error 字段,其它字段为 null 或空数组,整体响应仍是 200:
{
"success": true,
"data": {
"domain": "nonexistent.example",
"checked_at": "2026-06-01T08:00:00.000Z",
"whois": { "error": "no_data" },
"dns": { "A": [], "AAAA": [], "CNAME": [], "MX": [], "NS": [], "TXT": [] },
"ssl": { "error": "ENOTFOUND" },
"http": { "error": "ENOTFOUND", "elapsed_ms": 35, "redirect_chain": [] }
}
}
字段说明
顶层
| 字段 | 类型 | 说明 |
|---|---|---|
domain |
string | 归一化后的域名(小写、去空格) |
checked_at |
string | 检测时间(ISO 8601) |
whois — 注册信息(由 WHOIS 协议拉取并归一化)
| 字段 | 类型 | 说明 |
|---|---|---|
registrar |
string | 注册商名称 |
created_at |
string | 域名注册时间 |
updated_at |
string | 上一次更新时间 |
expires_at |
string | 到期时间 |
registrant |
string | 注册人 / 组织 |
registrant_country |
string | 注册人国家代码 |
name_servers |
string[] | 权威 DNS 列表 |
status |
string[] | EPP 状态码列表 |
error |
string | 查询失败时存在 |
dns — DNS 记录(六种)
| 字段 | 说明 |
|---|---|
A |
IPv4 地址列表 |
AAAA |
IPv6 地址列表 |
CNAME |
别名 |
MX |
<priority> <exchange> 字符串列表 |
NS |
权威 NS 列表 |
TXT |
文本记录(chunk 已合并) |
ssl — 443 端口证书
| 字段 | 类型 | 说明 |
|---|---|---|
subject_cn |
string | 证书 Subject CN |
subject_alt_names |
string | SAN 原始字符串 |
issuer_cn |
string | 签发者 CN |
issuer_o |
string | 签发者组织 |
valid_from |
string | 生效时间(ISO) |
valid_to |
string | 失效时间(ISO) |
days_to_expire |
integer | 距离失效剩余天数,负数表示已过期 |
fingerprint_sha256 |
string | SHA-256 指纹 |
error |
string | 连接失败时存在 |
http — HTTPS 探测
| 字段 | 类型 | 说明 |
|---|---|---|
status |
integer | 最终响应状态码 |
server |
string | Server 响应头 |
content_type |
string | Content-Type 响应头 |
x_powered_by |
string | X-Powered-By 响应头 |
final_url |
string | 跟随重定向后的最终 URL |
redirect_chain |
object[] | {status, location} 列表 |
elapsed_ms |
integer | 整体耗时 |
error |
string | 请求失败时存在(如 ENOTFOUND / ETIMEDOUT) |
示例
# 检测 google.com
curl -X POST "https://trendforge.devlive.top/api/tools/domain/check" \
-H "Authorization: Bearer tf_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"domain":"google.com"}'
错误响应
所有错误均返回 JSON 格式:
{
"success": false,
"code": 400,
"message": "域名格式不正确"
}
| HTTP 状态码 | code |
原因 |
|---|---|---|
400 |
400 | domain 缺失或格式不正确 |
401 |
401 | 未携带令牌或令牌无效 |
403 |
403 | 令牌缺少 read:tools_domain 权限 |
429 |
429 | 命中分钟级或日级频率限制 |
500 |
500 | 服务器内部错误 |
数据说明
- 所有外部网络调用(WHOIS / DNS / TLS / HTTPS)均由服务端执行,不会暴露调用方客户端 IP
- 单次调用不缓存,每次都会重新探测;批量场景请控制频率
- TLS 探测超时 5 秒,HTTPS 探测超时 5 秒、最多 5 次重定向
ssl块不校验证书链(拿到证书即返回),目的是检测信息可读性而非"是否被信任"- 不同 TLD 的 WHOIS 返回字段差异较大,本接口对常见 TLD 做了字段名归一化,极少数 ccTLD(如
.cn)可能字段不完整 - 同一令牌的频率配额与同一登录会话共享