DNS 查询 API

通过指定的公共 DNS 查询域名的 A、AAAA、CNAME、MX、TXT、NS、SOA、CAA、SRV、PTR 记录

数据来源:公共 DNS(Cloudflare / Google / 阿里 / DNSPod / 114)

返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。

查询域名的 DNS 记录,可选公共 DNS 服务器

GET /api/dns

请求参数

  • domain(必填):要查询的域名(支持中文域名、_dmarc 这类带下划线的名称);查 PTR 时直接传 IP 地址,示例 github.com
  • type:记录类型:A / AAAA / CNAME / MX / TXT / NS / SOA / CAA / SRV / PTR / ALL(除 PTR 外全部查询)。domain 为 IP 时自动按 PTR 查询,示例 MX
  • server:DNS 服务器:cloudflare(1.1.1.1)、google(8.8.8.8)、alidns(223.5.5.5)、dnspod(119.29.29.29)、114(114.114.114.114),不支持自定义地址,示例 alidns

返回字段

  • domain(string):查询的域名(ASCII 形式,中文域名已转为 punycode,如 xn--fiqs8s);传入 IP 时为该 IP
  • query(string):实际发给 DNS 服务器的名称:通常与 domain 相同;PTR 查询时为反向域名(如 4.4.8.8.in-addr.arpa)
  • type(string):请求的记录类型:A / AAAA / CNAME / MX / TXT / NS / SOA / CAA / SRV / PTR / ALL(与 type 参数一致,未传时为 ALL)
  • server(string):使用的 DNS 服务器名:cloudflare / google / alidns / dnspod / 114
  • serverIp(string):DNS 服务器的 IP 地址(如 1.1.1.1)
  • ms(number):全部查询完成的总耗时(毫秒,保留两位小数;各类型并行查询)
  • results(array):每种记录类型一项,顺序固定为 A、AAAA、CNAME、MX、TXT、NS、SOA、CAA、SRV(ALL 时);单独查询时只有一项
  • results[].type(string):记录类型(A / AAAA / CNAME / MX / TXT / NS / SOA / CAA / SRV / PTR)
  • results[].status(string):查询结果:ok 有记录;empty 域名存在但没有该类型的记录;nxdomain 域名不存在;error 查询出错(超时、服务器拒绝等,见 error)。empty / nxdomain 是正常的"没有记录",与 error 区分
  • results[].ms(number|null):该类型的查询耗时(毫秒,保留两位小数);整体超过 5 秒被取消时为 null
  • results[].records(array):记录列表;status 不是 ok 时为空数组。MX 按优先级升序,SRV 按优先级升序、权重降序
  • results[].records[].value(string):记录值:A / AAAA 为 IP 地址;CNAME / NS / PTR 为域名;MX 为邮件服务器域名(为 . 时是 Null MX,表示该域名不接收邮件);TXT 为文本(多段字符串已拼接);SOA 为主 DNS 服务器;CAA 为属性值(如 letsencrypt.org);SRV 为目标主机
  • results[].records[].ttl(number):缓存时间 TTL(秒),仅 A / AAAA 记录有此字段(其他类型 node:dns 无法取得 TTL)
  • results[].records[].priority(number):优先级,数值越小越优先;仅 MX、SRV 记录有此字段
  • results[].records[].weight(number):同优先级下的权重,仅 SRV 记录有此字段
  • results[].records[].port(number):服务端口,仅 SRV 记录有此字段
  • results[].records[].tag(string|null):CAA 属性名:issue 允许签发证书的 CA、issuewild 允许签发通配符证书的 CA、iodef 违规报告地址;仅 CAA 记录有此字段,无法识别时为 null
  • results[].records[].flags(number):CAA 标志位:0 普通,128 关键(CA 不认识该属性时必须拒绝签发);仅 CAA 记录有此字段
  • results[].records[].hostmaster(string):管理员邮箱(SOA 格式,第一个点代表 @,如 dns.cloudflare.com 即 dns@cloudflare.com);仅 SOA 记录有此字段
  • results[].records[].serial(number):区域序列号,每次修改记录后递增;仅 SOA 记录有此字段
  • results[].records[].refresh(number):辅 DNS 服务器检查更新的间隔(秒);仅 SOA 记录有此字段
  • results[].records[].retry(number):辅 DNS 服务器更新失败后的重试间隔(秒);仅 SOA 记录有此字段
  • results[].records[].expire(number):辅 DNS 服务器联系不上主服务器时,区域数据的有效期(秒);仅 SOA 记录有此字段
  • results[].records[].minttl(number):否定缓存时间(秒):查询不到记录的结果被缓存多久;仅 SOA 记录有此字段
  • results[].error(string|null):查询出错的中文说明(如"DNS 服务器响应超时");status 为 ok / empty / nxdomain 时为 null