2.API接口说明
更新时间:2019-06-14
2.1 URL形式
-
http(s)://180.76.76.200/v3/resolve?account_id=&dn=&sign=&t=&ip=
- HTTP GET请求
2.2 参数说明
2.2.1 域名解析参数
-
account_id:6位数字账户id,如“107080”。开通HTTPDNS服务后为用户分配。可在控制台概览页面查询。
- 必须参数
-
dn : 待解析的域名
- 必须参数
-
ip:客户端ip,HTTPDNS服务可根据指定用户ip给出最优解析结果
- 可选参数
- 格式:点分十进制的ipv4字符串
- 当不输入ip时,服务端使用客户端真实外网ip进行dns解析
2.2.2 鉴权参数
-
t: 鉴权签名失效时间
- 必须参数
- 格式:1970年1月1日以来的秒数(整形正数,固定长度10)
- 举例:1513602734,代表签名的过期时间为2017/12/18 21:12:14
-
sign:鉴权签名
- 必须参数
-
签名算法:
- sign = md5sum( “dn-secret-timestamp” )
- dn:待解析域名
-
举例:
- 对于dn为www.baidu.com,secret为1234567890,timestamp为1513602734的情况,sign=md5sum("www.baidu.com-1234567890-1513602734"),取值为9d4eac35c33b8fa1610476ff1532643d
2.3返回值说明
2.3.1 正常情况的返回值
-
返回值格式为json,形式如下:
{
“msg”:,
“data”:,
“clientip”:,
“timestamp”:} - msg:string类型,取值”ok”代表成功,其他取值用于描述错误信息,错误信息见2.3.2节描述
-
data:字典类型,其中key为解析的域名,value为每个域名对应的解析结果,形式如下:
{
“a.baidu.com”:{ “ip”: [“1.2.3.4”, “3.4.5.6”], “ttl”: 300, } }-
ip:array类型,每个成员为string类型,内容为点分十进制的ipv4域名解析结果。
-
对于有多IP解析结果的情况:
- 建议用户优先使用第一个IP进行请求
- 对于请求失败需要重试的情况,建议按顺序依次使用多IP解析结果中的IP进行重试
-
- ttl:int类型,域名有效时间,以秒为单位
-
-
clientip
- string类型,服务端角度看到的客户端外网ip信息
- 内容格式:点分十进制的ipv4字符串
-
timestamp
- int类型,服务端开始处理请求的时间戳
-
内容格式:Unix timestamp,单位是秒
- 如:1509590059
2.3.2 异常情况的返回值
异常情况下使用http code标识错误类型,同时在body的msg段中给出错误信息
http状态码 | 错误码 | 描述 |
---|---|---|
400 | InvalidParam | 参数错误 |
400 | DnNotExist | 域名不存在 |
403 | AccountDisabled | 已关闭该账户的解析功能 |
403 | InvalidSignature | 签名校验错误 |
403 | SignatureExpired | 签名时间戳过期 |
403 | DnNotInWhitelist | 域名不在白名单内 |
404 | InvalidAccountId | 账户id不存在 |
404 | InvalidUrlPath | 请求的url路径不正确 |
500 | InternalError | 域名解析服务内部异常 |
502 | DnNoRecord | 域名解析结果为空 |