域名独立解析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) 也可能因部署环境不同而需要更改。