2.API接口说明
2.1 URL形式
-
http(s)://180.76.76.200/v4/resolve?account_id=&dn=&t=&sign=&type=&ip=&detail=&alt_server_ip=
- HTTP GET请求
2.2 参数说明
2.2.1 域名解析参数
-
account_id:6位数字账户id,如“107080”。开通HTTPDNS服务后为用户分配。可在控制台概览页面查询。
- 必须参数
-
dn : 待解析的域名,多域名使用逗号分隔,多域名情况下,限制域名数量上限为10个
- tag与dn为互斥参数,二者有且必须仅有1个输入
-
tag : 代表一组待解析域名的集合,tag在HTTPDNS控制台配置
- tag与dn为互斥参数,二者有且必须仅有1个输入
-
ip:客户端ip,HTTPDNS服务可根据指定用户ip给出最优解析结果
- 可选参数
- 格式:点分十进制的ipv4字符串 或 冒号十六进制的ipv6字符串
- 当不输入ip时,服务端使用客户端真实外网ip进行dns解析
2.2.2 鉴权参数
-
t: 鉴权签名失效时间
- 必须参数
- 格式:1970年1月1日以来的秒数(整形正数,固定长度10)
- 举例:1513602734,代表签名的过期时间为2017/12/18 21:12:14
-
sign:鉴权签名
- 必须参数
-
签名算法:
- sign = md5sum( “${dn/tag}-${secret}-${timestamp}” )
- dn/tag:dn或tag参数的值
-
举例:
- dn为www.baidu.com,secret为1234567890,timestamp为1513602734的情况, sign=md5sum("www.baidu.com-1234567890-1513602734"),取值为9d4eac35c33b8fa1610476ff1532643d
2.2.3 其他参数
-
detail: 用于指定在解析请求的返回值中,是否给出更加详细的信息
- 可选参数, 默认false
- true:返回值的内容包含本次解析的detail信息,包括解析方式类型、解析过程中使用的CNAME等信息
- false:返回值的内容为默认的基本解析结果
-
alt_server_ip: 用于指定在解析请求的返回之中,是否给出可更换的服务端静态IP信息
- 可选参数, 默认false
- true: 在返回值的serverip字段中给出服务端静态IP信息,返回的服务端静态IP包含ipv4、ipv6类型,实际返回的类型取决于type参数
- false:返回值的内容为默认的基本解析结果
2.3返回值说明
2.3.1 正常情况的返回值
-
返回值格式为json,形式如下:
{
“msg”:,
“data”:,
“clientip”:,
“timestamp”:, "serverip": } - msg:string类型,取值”ok”代表成功,其他取值用于描述错误信息,错误信息见2.3.2节描述
-
data:字典类型,其中key为解析的域名,value为每个域名对应的解析结果,形式如下:
{
“a.baidu.com”:{ “ipv4”: { “ip”: [“1.2.3.4”, “3.4.5.6”], “ttl”: 300 } } } -
ipv4/ipv6:一个域名的解析结果,包括如下字段:
-
ip:array类型,每个成员为string类型,内容为点分十进制的ipv4域名解析结果 或 冒号十六进制的ipv6解析结果。
-
对于有多IP解析结果的情况:
- 建议用户优先使用第一个IP进行请求
- 对于请求失败需要重试的情况,建议按顺序依次使用多IP解析结果中的IP进行重试
- 异常情况 或 没有解析结果的情况,为空列表
-
- ttl:int类型,域名有效时间,以秒为单位, ttl默认使用权威域名解析服务器给出的值,也可在HTTPDNS控制台中自行配置
-
-
clientip
- string类型,服务端角度看到的客户端外网ip信息
- 内容格式:点分十进制的ipv4字符串
-
timestamp
- int类型,服务端开始处理请求的时间戳
-
内容格式:Unix timestamp,单位是秒
- 如:1509590059
-
serverip
- json字典类型,根据当前客户端的接入网络给出推荐的服务端静态接入ip,用于配合流量优化方案
- 仅当输入参数 alt_server_ip为true时返回serverip字段
-
内容格式如下:
{ "ipv4": ["1.2.3.4","3.4.5.6"], "ipv6": ["2001:DB8:2de::e13","2001:DB8:2de::e12"] }
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 | 域名解析服务内部异常 |
501 | BindInternalError | bind 内部错误 |
502 | DnNoRecord | 域名解析结果为空 |
503 | BindServFail | SERVFAIL |
515 | Timeout | 请求超时 |