HTTPS 请求方式查询

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

我的收藏

概述

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

前期准备

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

接口描述

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

请求参数

参数名
参数含义
是否必选
取值
加密
说明
dn
被查询的域名
字符串
需在移动解析 HTTPDNS 控制台已添加域名。具体请参见 添加域名
token
使用 HTTPS 方式的标识
整型数据
token 获取请参见 配置信息说明
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 地址。
使用 HTTPS 方式,传输的数据会因为 TLS 通道而被加密保护,因此不需要主动对传入的数据额外加密。
出于安全和身份认证的考虑,需要传入 HTTPS Token 实现身份鉴权。

请求说明

以请求域名为 cloud.tencent.com,token 为 yyyy 为例。
注意:
若 HTTPDNS 未查询到解析结果,将返回为空值。
HTTP 已接入 BGP Anycast,并实现多地机房容灾,但为了服务质量更高的保障,建议您采用 Failed over 策略 进行接入。

请求 A 记录

输入示例:
curl "https://119.29.29.99/d?dn=cloud.tencent.com&token=yyyy"
解密后返回格式:
2.3.3.4;2.3.3.5;2.3.3.6
格式说明:返回查询结果,多个结果以 ';' 分隔。

返回结果中携带 ttl 信息

输入示例:
curl "https://119.29.29.99/d?dn=cloud.tencent.com&token=yyyy&ttl=1"
解密后返回格式:
2.3.3.4;2.3.3.5;2.3.3.6,120
格式说明:返回查询结果,多个结果以 ';' 分隔。记录值与 ttl 值以 ',' 分隔。

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

输入示例:
curl "https://119.29.29.99/d?dn=cloud.tencent.com&token=yyyy&clientip=1&ip=1.2.3.4&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 "https://119.29.29.99/d?dn=cloud.tencent.com&token=yyyy&clientip=1&ip=1.2.3.4&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 "https://119.29.29.99/d?dn=cloud.tencent.com&token=yyyy&clientip=1&ip=1.2.3.4&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 "https://119.29.29.99/d?dn=cloud.tencent.com,www.qq.com,www.dnspod.cn&token=yyyy&clientip=1&ip=1.2.3.4&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 地址附加在所有记录值的最后。

请求异常或无记录说明

查询 A 记录

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

返回结果中包含域名

输入示例:
curl "https://119.29.29.99/d?dn=cloud.tencent.com&token=yyyy&type=addrs&query=1&ip=1.2.3.4"
解密后返回格式:
cloud.tencent.com|1.2.3.4
格式说明:0表示没有记录。

返回 A 与 AAAA 的记录

输入示例:
curl "https://119.29.29.99/d?dn=cloud.tencent.com&token=yyyy&type=addrs&query=1&ip=1.2.3.4"
解密后返回格式:
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 "https://119.29.29.99/d?dn=cloud.tencent.com,www.qq.com,www.dnspod.cn&token=yyyy&clientip=1&ip=1.2.3.4&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” 请求方式。