全部产品
Search
文档中心

Alibaba Cloud DNS:API JSON DoH

更新时间:Nov 10, 2025

API JSON DNS-over-HTTPS (DoH) menyediakan titik akhir URL untuk API TLS maupun non-TLS.

Titik akhir

  • https://223.5.5.5/resolve?name=domain&type=tipe rekaman&uid=ID Akun&ak=ID AccessKey&key=****&ts=timestamp

  • http://223.5.5.5/resolve?name=domain&type=tipe rekaman&uid=ID Akun&ak=ID AccessKey&key=****&ts=timestamp

  • https://223.6.6.6/resolve?name=domain&type=tipe rekaman&uid=ID Akun&ak=ID AccessKey&key=****&ts=timestamp

  • http://223.6.6.6/resolve?name=domain&type=tipe rekaman&uid=ID Akun&ak=ID AccessKey&key=****&ts=timestamp

Parameter permintaan

Metode permintaan: GET. Parameter permintaan adalah sebagai berikut:

Parameter

Tipe

Deskripsi

Contoh

Cara penggunaan dan nilai default

name

string

Nama domain dalam permintaan

name=www.taobao.com

Wajib, tidak ada nilai default

type

string

Tentang tipe yang didukung untuk parameter type

type=A

Opsional, tidak ada nilai default

edns_client_subnet

IP

ECS IP

edns_client_subnet=1.2.XX.XX/24

Untuk penggunaan Proxy DNS, tidak berlaku untuk klien biasa

short

boolean

short=true atau short=1

Opsional, dinonaktifkan secara default

uid

string

uid adalah ID Akun di konsol, bukan ID akun Alibaba Cloud

uid=9**9

Wajib, tidak ada nilai default

ak

string

ak adalah ID AccessKey di konsol

ak=test

Wajib, tidak ada nilai default

ts

string

Timestamp

Bilangan bulat tak bertanda, detik sejak 1 Januari 1970

ts=1614927253

Wajib, tidak ada nilai default

key

string

String hash untuk otentikasi

Tanda tangan yang dibuat menggunakan AccessKey Secret

key=fb321ab77496a89c04de0a1e979bfee4b4678a0dcd57f4da1da83****490f64b

Wajib, tidak ada nilai default

did

string

ID Perangkat

did=afck0100

Opsional

Tentang parameter edns_client_subnet

Parameter edns_client_subnet mendukung fungsi ECS DNS (RFC7871), yang meneruskan informasi subnet pengguna ke DNS otoritatif untuk resolusi DNS yang lebih akurat dan pengalihan lalu lintas. Masker subnet yang lebih panjang memberikan informasi alamat yang lebih presisi, sementara masker yang lebih pendek menawarkan privasi pengguna yang lebih baik. Panjang masker subnet "/24" direkomendasikan.

Catatan

Parameter ini dirancang untuk skenario di mana proxy DNS menggunakan API JSON DoH. Dalam skenario tersebut, pengguna mengirim kueri DNS ke proxy DNS, yang kemudian menggunakan parameter ini untuk mengirimkan informasi subnet pengguna ke HTTPDNS. Informasi tersebut selanjutnya diteruskan ke server otoritatif.

Sebagai contoh, dengan subnet=1.2.XX.XX/24, server otoritatif akan menerima informasi awalan alamat 1.2.XX.XX/24 untuk membantu memilih jalur DNS untuk pengguna.

Tentang tipe yang didukung untuk parameter type

Tipe rekaman

ID

Catatan

A

1

Alamat IPv4

NS

2

Rekaman NS

CNAME

5

Rekaman CNAME domain

SOA

6

Rekaman SOA Zona

TXT

16

Rekaman TXT

AAAA

28

Alamat IPv6

PTR

12

Rekaman PTR, digunakan untuk pencarian balik DNS

MX

15

Rekaman pertukaran surat

SRV

33

Rekaman SRV menentukan host dan port untuk layanan tertentu

CAA

257

Rekaman CAA adalah langkah keamanan untuk mencegah penerbitan sertifikat HTTPS yang salah

Algoritma untuk menghasilkan parameter autentikasi key

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

Catatan: Tanda tambah (+) merepresentasikan penggabungan string, bukan karakter "+" yang sebenarnya. 

Dalam rumus ini, Account ID adalah nilai string dari ID akun Anda. Sebagai contoh, jika ID akun Anda adalah 9**9, string-nya adalah "9**9". ts adalah timestamp dari permintaan saat ini. qname adalah nama domain yang diminta. Untuk informasi selengkapnya tentang cara menghasilkan ID AccessKey dan Rahasia AccessKey, lihat Buat kunci.

Contoh pembuatan key

Catatan

Asumsikan:

  • ID Akun=5***4

  • AccessKey Secret=12345**

  • qname=aliyun.com

  • ts=1614927253

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

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

Kunci yang dihasilkan adalah:

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

Permintaan contoh

Catatan

https://223.5.5.5/resolve?name=domain&type=tipe rekaman&uid=ID Akun&ak=ID AccessKey&key=****&ts=timestamp

Respon contoh

{
    "Status":0,  
    "TC":false,
    "RD":true,
    "RA":true,
    "AD":false,
    "CD":false,
    "Question":{       // Bagian permintaan
        "name":"www.taobao.com.",
        "type":1
    },
    "Answer":[         // Bagian respons
        {
            "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" Bagian otoritas, jika data ada, formatnya sama dengan bidang Answer 
    //"Additional" Bagian tambahan, jika data ada, formatnya sama dengan bidang Answer
    // Opsional "edns_client_subnet":"1.2.XX.XX/24"  
}

Deskripsi nilai respons

Nama bidang

Deskripsi

Contoh

Status

rcode di header pesan DNS

0: noerror

1: formerr

2: servfail

3: nxdomain

TC

TC di header pesan DNS, menunjukkan apakah pemotongan mungkin terjadi

Biasanya false

RD

RD di header pesan DNS, menunjukkan apakah rekursi diinginkan

Biasanya true

RA

RA di header pesan DNS, menunjukkan apakah rekursi tersedia

Biasanya true

AD/CD

Flag yang sesuai di header pesan DNS

Biasanya false

Question

Bidang permintaan DNS

Tidak ada

Answer

Bidang respons DNS

Tidak ada

name

Nama domain, termasuk dalam Question dan Answer

www.taobao.com

type

Tipe permintaan, lihat "Tentang tipe yang didukung untuk parameter type" di atas

Contohnya: A, AAAA, TXT, CNAME, NS, SOA

TTL

Waktu maksimum caching nilai respons di server, dalam detik

3600

data

Hasil respons, terkait dengan tipe

Tidak ada

Contoh respons mode singkat:

Menggunakan www.taobao.com sebagai contoh, ketika meminta rekaman A, URL permintaannya adalah:

https://223.5.5.5/resolve?name=domain&type=A&uid=AccountID&short=1&ak=AccessKey ID&key=****&ts=timestamp

Responsnya adalah sebagai berikut:

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

Ketika meminta rekaman CNAME, URL-nya adalah:

https://223.5.5.5/resolve?name=domain&type=CNAME&uid=AccountID&short=1&ak=AccessKey ID&key=****&ts=timestamp

Responsnya adalah sebagai berikut:

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

Tanggapan gagal

Ketika permintaan gagal, kode status respons HTTP adalah 4xx/5xx, dan kode kesalahan spesifik dikembalikan untuk debugging atau pelaporan masalah. Hasilnya direpresentasikan dalam format JSON.

Contoh respons gagal:

{
 "code":"UrlParameterError"
}

Daftar kode kesalahan

Kode kesalahan

Kode status HTTP

Deskripsi

UrlParameterError

400

Kesalahan format parameter permintaan

NoPermission

401

Otentikasi gagal

UrlPathError

404

Kesalahan URL

NoResponse

500

Timeout permintaan, tidak ada respons

Catatan
  1. Untuk informasi selengkapnya tentang cara menggunakan API JSON DoH untuk mengakses HTTPDNS guna resolusi nama domain, lihat Praktik Terbaik API JSON DoH.

  2. Kami merekomendasikan menggunakan SDK untuk akses, karena mencakup kode tanda tangan dan tidak memerlukan implementasi manual. Untuk akses SDK, lihat Panduan Pengembangan SDK Android dan Panduan Pengembangan SDK iOS.