域名獨立解析API-介面文檔

DNS API 介面文件

概述

本文檔描述了DNS記錄的查詢、新增、更新和刪除介面。所有介面均採用 GET 方法,並須進行請求簽章。

基礎路徑 (Base URI): https://www.tnet.hk

請求方法: 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.hk

請求範例:

在新增了所有簽章所需公用參數後,一個完整的請求URL範例如下:

複製

https://www.tnet.hk/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, hkAME, TXT等
Value String 是 記錄值,如 IP 位址或網域
Ttl Integer 是 記錄的 TTL (存活時間) 值,單位:秒

請求範例:

複製

http://wwws.tnet.hk/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, hkAME, TXT等
Value String 是 記錄值,如 IP 位址或網域
Ttl Integer 是 記錄的 TTL (存活時間) 值,單位:秒

請求範例:

此介面在文件中範例僅更新了 Host欄位。

複製

https://www.tnet.hk/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.tnet.hk/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.tnet.hk) 也可能因部署環境不同而需要變更。