全部產品
Search
文件中心

Alibaba Cloud DNS:DoH JSON API

更新時間:Aug 15, 2025

DoH JSON API的URL 介面 (提供TLS和非TLS API)。

介面地址

  • https://223.5.5.5/resolve?name=網域名稱&type=記錄類型&uid=AccountID&ak=AccessKey ID&key=****&ts=時間戳記

  • http://223.5.5.5/resolve?name=網域名稱&type=記錄類型&uid=AccountID&ak=AccessKey ID&key=****&ts=時間戳記

  • https://223.6.6.6/resolve?name=網域名稱&type=記錄類型&uid=AccountID&ak=AccessKey ID&key=****&ts=時間戳記

  • http://223.6.6.6/resolve?name=網域名稱&type=記錄類型&uid=AccountID&ak=AccessKey ID&key=****&ts=時間戳記

請求參數

請求方式GET,請求參數請查看如下列表:

參數

類型

描述

樣本

使用方法和預設值

name

string

請求網域名稱

name=www.taobao.com

必選,無預設值

type

string

關於type參數支援類型

type=A

可選,無預設值

edns_client_subnet

IP

ECS IP

edns_client_subnet=1.2.XX.XX/24

DNS代理使用,普通用戶端不適用

short

boolean

short=true 或者 short=1

可選,預設關閉

uid

string

uid即控制台上的Account ID非阿里雲帳號ID

uid=9**9

必選,無預設值

ak

string

ak即控制台中的 AccessKey ID

ak=test

必選,無預設值

ts

string

時間戳記

無符號整型,從 1970.1.1 以來的秒數

ts=1614927253

必選,無預設值

key

string

鑒權用雜湊串

使用AccessKey Secret產生的簽名

key=fb321ab77496a89c04de0a1e979bfee4b4678a0dcd57f4da1da83****490f64b

必選,無預設值

did

string

裝置ID

did=afck0100

可選

關於edns_client_subnet參數

edns_client_subnet是為了支援DNS ECS功能(RFC7871),將使用者的子網資訊傳遞給權威DNS,以便進行更精確的DNS解析和流量調度。其中,掩碼越長的地址資訊越精確,掩碼越短則使用者隱私效果越好,建議使用“/24”掩碼長度。

說明

該參數是特地為DNS代理(proxy)使用DoH JSON API情境設計,即使用者發送DNS查詢給DNS代理,DNS代理通過該參數攜帶使用者的子網資訊傳遞給移動解析HTTPDNS,最後傳遞到權威DNS伺服器。

例如edns_client_subnet=1.2.XX.XX/24,權威伺服器會收到基於1.2.XX.XX/24地址首碼資訊來協助使用者選擇DNS鏈路。

關於type參數支援類型

記錄類型

ID

說明

A

1

IPv4地址

NS

2

NS記錄

CNAME

5

網域名稱 CNAME 記錄

SOA

6

ZONE 的 SOA 記錄

TXT

16

TXT 記錄

AAAA

28

IPv6 地址

PTR

12

PTR記錄,用於反向DNS尋找

MX

15

郵件交換記錄

SRV

33

SRV記錄為特定的服務指定主機和連接埠

CAA

257

CAA記錄是一項防止HTTPS認證錯誤頒發的安全措施

鑒權相關參數key的產生演算法

key = sha256(AccountID+AccessKey Secret+ts+qname+AccessKey ID)

註:加號(+)表示字串相連,並非實際使用“+”。 

其中,Account ID 為數字直接轉換的字串,比如 9**9 使用者,使用字串為 "9**9",ts為當前請求的時間戳記,qname 為使用者此次請求的網域名稱,AccessKey ID 和 AccessKey Secret 參考建立密鑰產生。

key 產生樣本

說明

假如:

  • Account ID=5***4

  • AccessKey Secret=12345**

  • qname=aliyun.com

  • ts=1614927253

  • AccessKey ID=5***4_2155917885567****

key=sha256(5***412345**1614927253aliyun.com5***4_2155917885567****)

產生的key為:

key=*****ab77496a89c04de0a1e979bfee4b4678a0dcd57f4da1da83***a490f64b

請求樣本

說明

https://223.5.5.5/resolve?name=網域名稱&type=記錄類型&uid=AccountID&ak=AccessKey ID&key=****&ts=時間戳記

返回樣本

{
    "Status":0,  
    "TC":false,
    "RD":true,
    "RA":true,
    "AD":false,
    "CD":false,
    "Question":{       // 請求段
        "name":"www.taobao.com.",
        "type":1
    },
    "Answer":[         // 應答段
        {
            "name":"www.taobao.com.",
            "TTL":45,
            "type":5,
            "data":"www.taobao.com.danuoyi.tbcache.com."
        },
        {
            "name":"www.taobao.com.danuoyi.tbcache.com.",
            "TTL":45,
            "type":1,
            "data":"47.246.XX.XX"
        },
        {
            "name":"www.taobao.com.danuoyi.tbcache.com.",
            "TTL":45,
            "type":1,
            "data":"47.246.XX.XX"
        }
    ]
    //"Authority" 權威段, 如果有資料與Answer欄位一致 
    //"Additional" 附加段, 如果有資料與Answer欄位一致
    // 可選 "edns_client_subnet":"1.2.XX.XX/24"  
}

傳回值說明

欄位名

描述

樣本

Status

DNS 報文頭的 rcode

0: noerror

1: formerr

2: servfail

3: nxdomain

TC

DNS 報文頭的 TC,標識是否可截斷

通常為 false

RD

DNS 報文頭的 RD,表示是否期望遞迴

通常為 true

RA

DNS 報文頭的 RA,表示是否為可用遞迴

通常為 true

AD/CD

對應的 DNS 報文頭的標識

通常為 false

Question

DNS 請求欄位

Answer

DNS 應答欄位

name

網域名稱,Question 和 Answer 都包含

www.taobao.com

type

請求類型,參考上文中“關於type參數支援類型

如:A、AAAA、TXT、CNAME、NS、SOA

TTL

應答值在伺服器中的最大緩衝時間,單位為秒

3600

data

應答結果,與 type 相關

short 模式應答樣本:

以www.taobao.com為例,當請求為 A 記錄時,請求 URL 為:

https://223.5.5.5/resolve?name=網域名稱&type=A&uid=AccountID&short=1&ak=AccessKey ID&key=****&ts=時間戳記

應答如下:

["221.229.XX.XX","61.155.XX.XX","221.229.XX.XX"]

當請求為 CNAME 記錄時,URL 為:

https://223.5.5.5/resolve?name=網域名稱&type=CNAME&uid=AccountID&short=1&ak=AccessKey ID&key=****&ts=時間戳記

應答如下:

["www.taobao.com.danuoyi.tbcache.com."]

失敗應答

請求失敗時,HTTP響應的狀態代碼為4xx/5xx,同時返回具體的錯誤碼,用於調試或者障礙上報,結果用JSON 表示。

失敗應答執行個體:

{
 "code":"UrlParameterError"
}

錯誤碼列表

錯誤碼

HTTP狀態代碼

描述

UrlParameterError

400

請求參數格式錯誤

NoPermission

401

使用者鑒權失敗

UrlPathError

404

URL錯誤

NoResponse

500

請求逾時無應答

說明
  1. 使用DoH JSON API的方式來接入移動解析HTTPDNS進行網域名稱解析,請參考DoH JSON API 接入最佳實務.

  2. 推薦使用 SDK 接入,SDK 中已包含簽名代碼,無需自行實現。SDK接入請參考Android SDK開發指南iOS SDK開發指南