HTTP 请求方式查询

最近更新时间:2024-08-14 14:41:52

我的收藏

概述

移动解析 HTTPDNS 通过 HTTP/HTTPS 接口对外提供域名解析服务,服务接入直接使用 IP 地址,移动解析 HTTPDNS 的 HTTP 请求方式查询入口以 119.29.29.98 为例。
说明:
我们提供2个入口 IP 示例,HTTP 协议的服务 IP:119.29.29.98,HTTPS 协议的服务 IP:119.29.29.99
请优先使用官方 SDK,如果场景特殊下无法使用 SDK,需要直接访问 HTTP API 接口,请加入 技术支持群 或者 提交工单 联系我们,我们将根据您的具体使用场景,为您提供相关的安全建议。
移动解析 HTTPDNS 接入的是 BGP Anycast 网络架构,对外提供的是Anycast IP。Anycast IP 是允许多个服务器共享同一个 IP 地址,具有高可用、负载均衡、减少网络延迟等优势。

前期准备

开通移动解析 HTTPDNS 服务,详情请参见 开通移动解析 HTTPDNS 服务
在控制台添加需要解析的域名,详情请参见 添加域名
获取配置信息,详情请参见 配置信息说明

接口描述

接口请求地址:http://119.29.29.98/d? + {请求参数}
请求方式:POST 或 GET。
入口 IP 的切换逻辑:当接入 IP 访问超时,或者返回的结果非 IP 格式,或者返回为空的时候,请采用其他入口 IP 接入,若所有 IP 均出现异常,请兜底至 LocalDNS 进行域名解析。

请求参数

参数名
参数含义
是否必选
取值
加密
说明
dn
被查询的域名
加密前的单个域名长度为253
需在移动解析 HTTPDNS 控制台已添加域名并且为传输加密后的字符串。
域名添加请参见 添加域名
加密详情请参见 加密与解密算法使用说明
id
用户标识(即授权 ID)
1 - 100000
如果使用 AES、DES 加密方式,必须传入授权 ID,不需要进行加密。
alg
选择使用何种算法
[aes/des]
默认使用 DES 算法,不同算法具有不同密钥。
ip
DNS 请求的 ECS(EDNS-Client-Subnet)值
IPv4/IPv6 地址值
默认情况下 HTTPDNS 服务器会查询客户端出口 IP 为 DNS 线路查询 IP,使用 “ip=xxx” 参数,可以指定线路 IP 地址。支持 IPv4/IPv6 地址传入,接口会自动识别。加密详情请参见 加密与解密算法使用说明
query
结果中返回被查询域名
1
单域名查询情况下,此参数要求返回结果中携带被查询域名。
timeout
超时返回时间
1000 - 5000,单位为毫秒
可用值[1000, 5000],单位为ms,查询超时时间,默认值为5秒。
ttl
查询结果是否返回 TTL 值
1
可用值 [1],不携带此参数,默认为不传递TTL值。
type
查询类型
[aaaa/AAAA/addrs/ADDRS]
可用值[aaaa,AAAA,addrs,ADDRS]。默认查询 A 记录,设置 AAAA/aaaa 查询 AAAA 记录,设置 addrs/ADDRS 同时查询 A 和 AAAA 记录。
clientip
查询结果中返回的客户端 IP 地址
1
可用值 [1],不携带此参数,默认为不传递 clientip 值。若此参数取值,则返回结果中地址值在 | 符号后,若携带有 ip 参数,返回的是 ip 参数的值,否则返回客户端地址 IP。
说明:
ECS(EDNS-Client-Subnet)协议在 DNS 请求包中附加请求域名解析的用户 IP 地址,DNS 服务器可以根据该地址返回用户更快速访问的服务器 IP 地址。

请求说明

以 ID 为 xxx 为例。
注意:
以下示例为 AES/DES 加密方式,其中域名和 IP 参数均需要加密,例如,域名为 cloud.tencent.com 需要进行加密,授权 ID 不需要进行加密。
若 HTTPDNS 未查询到解析结果,将返回为空值。
HTTP 已接入 BGP Anycast,并实现多地机房容灾,但为了服务质量更高的保障,建议您采用 Failed over 策略 进行接入。

请求 A 记录

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx"
解密后返回格式:
2.3.3.4;2.3.3.5;2.3.3.6
格式说明:返回查询结果,多个结果以 ';' 分隔。

返回结果中携带 ttl 信息

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx&ttl=1"
解密后返回格式:
2.3.3.4;2.3.3.5;2.3.3.6,120
格式说明:返回查询结果,多个结果以 ';' 分隔。记录值与 ttl 值以 ',' 分隔。

返回结果携带查询线路 IP 地址

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx&clientip=1&ip={DNS 请求的 ECS 值加密后字符串}&ttl=1"
解密后返回格式:
12.3.3.4;2.3.3.5;2.3.3.6,120|1.2.3.4
格式说明:返回结果中携带线路 ip 地址,以'|'分隔。如果没有传入 “ip=xxx” 参数,则返回出口 IP 地址;否则返回 ip 参数中的地址。

同时请求 A 和 AAAA 记录

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx&clientip=1&ip={DNS 请求的 ECS 值加密后字符串}&type=addrs&ttl=1"
解密后返回格式:
2.3.3.4;2.3.3.5;2.3.3.6,120-2402:4e00:0123:4567:0::2345;2403:4e00:0123:4567:0::2346,120|1.2.3.4
格式说明:A 记录和 AAAA 记录之间以 '-' 分隔,A 记录在前,AAAA 记录在后。

返回结果中携带被查询域名

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx&clientip=1&ip={DNS 请求的 ECS 值加密后字符串}&query=1&ttl=1"
解密后返回格式:
cloud.tencent.com.:2.3.3.4;2.3.3.5;2.3.3.6,120|1.2.3.4
格式说明:返回格式为 “域名.:结果” 的格式。

批量域名请求

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com,www.qq.com,www.dnspod.cn 加密后字符串}&id=xxx&clientip=1&ip={DNS 请求的 ECS 值加密后字符串}&ttl=1"
解密后返回格式:
cloud.tencent.com.:2.3.3.4;2.3.3.5;2.3.3.6,120
www.qq.com.:3.3.3.4;3.3.3.5;3.3.3.6,180
www.dnspod.cn.:4.3.3.4;4.3.3.5;4.3.3.6,60|1.2.3.4
格式说明:多个域名返回内容之间以 “换行符” 分隔,ip 地址附加在所有记录值的最后。

请求异常或无记录说明

注意:
以下示例为 AES/DES 加密方式,其中域名和 IP 参数均需要加密,例如域名为 cloud.tencent.com 需要加密,授权 ID 不需要进行加密。
如使用 HTTPS 加密方式,请求地址改为 119.29.29.99 并且必须要传入 token。

查询 A 记录

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx"
解密后返回格式: 空。
格式说明: 没有记录,则返回空字符串。

返回结果中包含域名

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx&type=addrs&query=1&ip={DNS 请求的 ECS 值加密后字符串}"
解密后返回格式:
cloud.tencent.com|1.2.3.4
格式说明:0表示没有记录。

返回 A 与 AAAA 的记录

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com 加密后字符串}&id=xxx&type=addrs&query=1&ip={DNS 请求的 ECS 值加密后字符串}"
解密后返回格式:
cloud.tencent.com.:0-0|1.2.3.4
格式说明:0表示没有记录。如果某个记录存在,则该记录正常返回在结果中,例如 cloud.tencent.com.:2.3.4.5;3.3.3.3-0|1.2.3.4,表示 AAAA 记录无法查询到。

批量域名请求

输入示例:
curl "http://119.29.29.98/d?dn={cloud.tencent.com,www.qq.com,www.dnspod.cn 加密后字符串}&id=xxx&clientip=1&ip={DNS 请求的 ECS 值加密后字符串}&ttl=1"
解密返回格式
cloud.tencent.com.:0
www.qq.com.:3.3.3.4;3.3.3.5;3.3.3.6,180
www.dnspod.cn.:4.3.3.4;4.3.3.5;4.3.3.6,60|1.2.3.4
格式说明:未查询到数据的域名则返回0。如果某个记录存在,则该记录正常返回在结果中。

HTTP 状态码

以下为接口业务逻辑相关的 HTTP 状态码。
状态码
描述
200 OK
如果接口调用正确,无论是否查询成功,均返回状态码200。
404 Not Found
接口不存在或 URL 实际上访问了某不存在的资源。
429 Too Many Request
访问过于频繁,超过了服务器限制。
501 Not Implemented
使用了非 “GET” 或 “POST” 请求方式。