跳转到内容
搜索文档

使用 JSON

最后更新 查看 MarkdownAgent 设置

Cloudflare 的 DNS over HTTPS 端点也支持使用 JSON 格式来查询 DNS 数据。互联网工程任务组 (IETF) 中还没有达成共识的 DNS over HTTPS JSON 模式,因此 Cloudflare 选择遵循与 Google 的 DNS over HTTPS 解析器相同的模式。

JSON 格式的查询是通过 GET 请求发送的。当使用 GET 发起请求时,DNS 查询将被编码到 URL 中。包含一个带有 MIME 类型为 application/dns-json 的 HTTP Accept 请求标头,以指示客户端可以接受 JSON 响应。

支持的参数

字段 是否必填? 描述 默认值
name 查询名称。 -
type 查询类型(可以是数值或文本)。 A
do DO 位 - 客户端是否需要 DNSSEC 数据(留空,或为 0false1true 之一)。 false
cd CD 位 - 禁用验证(留空,或为 0false1true 之一)。 false

示例

请求和响应示例:

curl --header "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&type=AAAA"
{
	"Status": 0,
	"TC": false,
	"RD": true,
	"RA": true,
	"AD": true,
	"CD": false,
	"Question": [
		{
			"name": "example.com.",
			"type": 28
		}
	],
	"Answer": [
		{
			"name": "example.com.",
			"type": 28,
			"TTL": 1726,
			"data": "2606:2800:220:1:248:1893:25c8:1946"
		}
	]
}

在请求无效的情况下,会返回 400 Bad Request 错误:

curl --header "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&cd=2"
{
	"error": "Invalid CD flag `2`. Expected to be empty or one of `0`, `false`, `1`, or `true`."
}

响应字段

以下表格提供了有关每个响应字段的更多信息。

成功响应

字段 描述
Status DNS 查询的响应代码。代码定义在:https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6
TC 如果 TC 字段为 true,则设置了截断位。这发生在 DNS 应答超出单个 UDP 或 TCP 数据包大小的情况。使用 Cloudflare DNS over HTTPS 时,TC 字段几乎总是为 false,因为 Cloudflare 支持最大响应大小。
RD 如果为 true,表示设置了“期望递归” (Recursive Desired) 位。在 Cloudflare DNS over HTTPS 中,该值始终设置为 true。
RA 如果为 true,表示设置了“递归可用” (Recursion Available) 位。在 Cloudflare DNS over HTTPS 中,该值始终设置为 true。
AD 如果为 true,表示应答中的每条记录都已通过 DNSSEC 验证。
CD 如果为 true,表示客户端要求禁用 DNSSEC 验证。在这种情况下,Cloudflare 仍会提取与 DNSSEC 相关的记录,但不会尝试验证这些记录。
Question: name 请求的记录名称。
Question: type 请求的 DNS 记录类型。这些类型定义在:https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4
Answer: name 记录所有者。
Answer: type DNS 记录的类型。这些类型定义在:https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4
Answer: TTL 在认为答案陈旧之前,可以在缓存中存储该答案的秒数。
Answer: data 给定名称和类型的 DNS 记录的值。对于标准化记录类型,数据将为文本格式;对于未知类型,数据将为十六进制。
Authority: name 记录所有者。
Authority: type DNS 记录的类型。这些类型定义在:https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4
Authority: TTL 在认为答案陈旧之前,可以在缓存中存储该答案的秒数。
Authority: data 给定名称和类型的 DNS 记录的值。对于标准化记录类型,数据将为文本格式;对于未知类型,数据将为十六进制。
Additional: name 记录所有者。
Additional: type DNS 记录的类型。这些类型定义在:https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4
Additional: TTL 在认为答案陈旧之前,可以在缓存中存储该答案的秒数。
Additional: data 给定名称和类型的 DNS 记录的值。对于标准化记录类型,数据将为文本格式;对于未知类型,数据将为十六进制。
Comment EDE 消息列表。有关更多信息,请参阅扩展 DNS 错误代码

错误响应

字段 描述
error 对所发生错误的说明。

这篇文档对您有帮助吗?