域名独立解析API-接口文档

DNS API 接口文档 概述

本文档描述了DNS记录的查询、添加、更新和删除接口。所有接口均采用 GET​ 方法,并需要进行请求签名。

基础路径 (Base URI): https://www.now.cn

请求方法: GET

签名机制: 是 (使用 HMAC-SHA1)

公共参数: 除接口特定参数外,每个请求都必须包含用于签名的公共参数。

签名机制 (Signature)

在调用任何接口前,必须对所有请求参数(包括公共参数和接口特定参数)进行签名,并将签名结果 Signature作为参数附加到请求中。

签名步骤:

准备公共参数: 将以下公共参数加入请求参数字典:

AccessInstanceID: 您的访问密钥ID (AccessKeyID)。

SignatureMethod: 固定为 HMAC-SHA1。

Timestamp: 请求的时间戳,格式为 ISO 8601 标准的 UTC 时间,例如 2023-10-27T06:50:12Z。

SignatureNonce: 用于防重放的唯一随机数,长度至少8位。

参数排序与编码:

将所有参数(包括公共参数和接口参数)按照参数名字典序升序排序。

对排序后的参数进行规范化编码,生成 CanonicalizedQueryString。编码规则使用 percentEncode函数(将“+”替换为“%20”,“*”替换为“%2A”,“%7E”替换为“~”)。

构造签名字符串:

格式:StringToSign = “GET&” + percentEncode(“/") + “&” + percentEncode(CanonicalizedQueryString)

计算签名:

使用 HMAC-SHA1 算法,以您的 AccessKeySecret作为密钥,对 StringToSign进行签名。

将签名结果进行 Base64 编码,得到的字符串即为 Signature参数的值。

添加签名:

将计算得到的 Signature值加入到最终的请求参数中。

注意: 您提供的 DnsApiTest.php文档中已包含完整的签名实现(sign, percentEncode, sign_string方法),可供参考。

接口列表

  1. 获取域名解析记录列表

查询指定域名的所有DNS解析记录。

请求路径: /api/dns/DescribeRecordIndex

请求方法: GET

请求参数:

参数名 类型 是否必填 描述
Domain String 要查询的域名,例如: csbxhk.com.cn

请求示例:

在添加了所有签名所需公共参数后,一个完整的请求URL示例如下:

复制 https://www.now.cn/api/dns/DescribeRecordIndex?AccessInstanceID=113515821&Domain=csbxhk.com.cn&Signature=计算出的签名值&SignatureMethod=HMAC-SHA1&SignatureNonce=随机字符串&Timestamp=2023-10-27T06:50:12Z 2. 添加域名解析记录

为指定域名添加一条新的DNS解析记录。

请求路径: /api/dns/AddDomainRecord

请求方法: GET

请求参数:

参数名 类型 是否必填 描述
Domain String 要添加记录的域名
Host String 主机记录,如 www, @, *等
Type String 记录类型,如 A, CNAME, TXT等
Value String 记录值,如 IP 地址或域名
Ttl Integer 记录的 TTL (生存时间) 值,单位:秒

请求示例:

复制 http://wwws.now.cn/api/dns/AddDomainRecord?AccessInstanceID=113515821&Domain=csbxhk.com.cn&Host=c&Signature=计算出的签名值&SignatureMethod=HMAC-SHA1&SignatureNonce=随机字符串&Ttl=600&Timestamp=2023-10-27T06:50:12Z&Type=A&Value=1.1.1.1 3. 更新域名解析记录

更新指定域名解析记录的配置。

请求路径: /api/dns/UpdateDomainRecord

请求方法: GET

请求参数:

参数名 类型 是否必填 描述
Domain String 记录所属的域名
Id String 需要更新的解析记录的 ID
Host String 更新后的主机记录
Type String 记录类型,如 A, CNAME, TXT等
Value String 记录值,如 IP 地址或域名
Ttl Integer 记录的 TTL (生存时间) 值,单位:秒

请求示例:

此接口在文档中示例仅更新了 Host字段。

复制 https://www.now.cn/api/dns/UpdateDomainRecord?AccessInstanceID=113515821&Domain=csbxhk.com.cn&Host=w&Id=19367&Signature=计算出的签名值&SignatureMethod=HMAC-SHA1&SignatureNonce=随机字符串&Timestamp=2023-10-27T06:50:12Z 4. 删除域名解析记录

删除一条指定的域名解析记录。

请求路径: /api/dns/DeleteDomainRecord

请求方法: GET

请求参数:

参数名 类型 是否必填 描述
Domain String 记录所属的域名
Id String 需要删除的解析记录的 ID

请求示例:

复制 https://www.now.cn/api/dns/DeleteDomainRecord?AccessInstanceID=113515821&Domain=csbxhk.com.cn&Id=19370&Signature=计算出的签名值&SignatureMethod=HMAC-SHA1&SignatureNonce=随机字符串&Timestamp=2023-10-27T06:50:12Z 调用步骤总结

准备参数: 确定要调用的接口,并组装其特定参数。

签名:

a. 加入公共参数 (AccessInstanceID, SignatureMethod, Timestamp, SignatureNonce)。

b. 对所有参数(按名称升序)进行规范化编码,生成待签名字符串。

c. 使用您的 AccessKeySecret,通过 HMAC-SHA1 算法计算签名,并进行 Base64 编码。

d. 将签名值作为 Signature参数加入请求。

发起请求: 使用 HTTP GET 方法,将所有参数以 Query String 形式附加到 API 请求路径后,向服务器发起请求。

重要提示: 文档中的 AccessInstanceID AccessKeySecret仅为示例,在实际调用时请替换为您自己的密钥。base_uri(http://www.now.cn) 也可能因部署环境不同而需要更改。