2.API接口说明

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”:<msg>,  
    “data”:<data>,  
    “clientip”:<clientip>,  
    “timestamp”:<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 域名解析结果为空