Todos os produtos
Search
Central de documentação

Alibaba Cloud DNS:DoH JSON API

Última atualização: Oct 16, 2026

Resolva nomes de domínio por HTTPS usando a API JSON DoH, disponível em endpoints com e sem TLS.

Endpoints

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

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

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

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

Parâmetros da requisição

Método: GET. Parâmetros:

Parâmetro

Tipo

Descrição

Exemplo

Uso e padrão

name

string

Nome do domínio na requisição

name=www.taobao.com

Obrigatório, sem valor padrão

type

string

About supported types for the type parameter

type=A

Opcional, sem valor padrão

edns_client_subnet

IP

IP do ECS

edns_client_subnet=1,2.XX.XX/24

Apenas para proxies dns

short

boolean

short=true ou short=1

Opcional, desativado por padrão

uid

string

id da conta no console (não o id da conta Alibaba Cloud)

uid=9**9

Obrigatório, sem valor padrão

ak

string

AccessKey ID do console

ak=test

Obrigatório, sem valor padrão

ts

string

Timestamp

Inteiro sem sinal, segundos desde 1º de janeiro de 1970

ts=1614927253

Obrigatório, sem valor padrão

key

string

string de hash para autenticação

Assinatura gerada usando o AccessKey Secret

key=fb321ab77496a89c04de0a1e979bfee4b4678a0dcd57f4da1da83****490f64b

Obrigatório, sem valor padrão

did

string

id do dispositivo

did=afck0100

Opcional

Sobre o parâmetro edns_client_subnet

O parâmetro edns_client_subnet implementa o dns ECS (RFC7871), transmitindo as informações de sub-rede do usuário para o dns autoritativo, o que garante uma resolução precisa e o redirecionamento de tráfego. Máscaras de sub-rede mais longas fornecem um endereçamento mais preciso, enquanto máscaras mais curtas melhoram a privacidade. Recomenda-se o uso de uma máscara de tamanho /24.

Nota

Use este parâmetro quando um proxy dns encaminhar consultas por meio da API JSON DoH. O proxy envia as informações de sub-rede do usuário para o HTTPDNS, que as repassa ao servidor autoritativo.

Por exemplo, com subnet=1,2.XX.XX/24, o servidor autoritativo recebe o prefixo 1,2.XX.XX/24 para selecione o caminho dns ideal.

Sobre os tipos suportados para o parâmetro type

Tipo de registro

ID

Observações

A

1

Endereço IPv4

NS

2

Registro NS

CNAME

5

Registro CNAME de domínio

SOA

6

Registro SOA da ZONA

TXT

16

Registro TXT

AAAA

28

Endereço IPv6

PTR

12

Registro PTR, usado para pesquisa reversa de dns

MX

15

Registro de troca de e-mail (Mail exchange)

SRV

33

O registro SRV especifica o host e a porta para serviços específicos

CAA

257

O registro CAA é uma medida de segurança para evitar a emissão incorreta de certificados HTTPS

Algoritmo para gerar o parâmetro de autenticação key

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

Note: The plus sign (+) represents string concatenation, not the actual "+" character. 

O Account id é o valor em string do seu id de conta (por exemplo, "9**9"). O ts é o timestamp da requisição atual. O qname é o nome do domínio requisitado. Para gerar um par de AccessKey, siga Crie uma chave.

Exemplo de geração da key

Nota

Considere:

  • Account id=5***4

  • AccessKey Secret=12345**

  • qname=aliyun.com

  • ts=1614927253

  • AccessKey id=5*4_2155917885567**

key=sha256(54123451614927253aliyun.com54_2155917885567**)

key gerada:

key=*ab77496a89c04de0a1e979bfee4b4678a0dcd57f4da1da83***a490f64b

Exemplo de requisição

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

Exemplo de resposta

{
    "Status":0,  
    "TC":false,
    "RD":true,
    "RA":true,
    "AD":false,
    "CD":false,
    "Question":{       // Request section
        "name":"www.taobao.com.",
        "type":1
    },
    "Answer":[         // Response section
        {
            "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" Authority section, if data exists, format is the same as Answer field 
    //"Additional" Additional section, if data exists, format is the same as Answer field
    // Optional "edns_client_subnet":"1.2.XX.XX/24"  
}

Descrição dos valores de resposta

Nome do campo

Descrição

Exemplo

Status

RCODE do cabeçalho dns

0: noerror

1: formerr

2: servfail

3: nxdomain

TC

Sinalizador TC: indica se o truncamento é possível

Geralmente false

RD

Sinalizador RD: indica se a recursão é desejada

Geralmente true

RA

Sinalizador RA: indica se a recursão está disponível

Geralmente true

AD/CD

Sinalizadores do cabeçalho dns

Geralmente false

Question

Campo de requisição dns

Nenhum

Answer

Campo de resposta dns

Nenhum

name

Nome do domínio, incluído tanto em Question quanto em Answer

www.taobao.com

type

Tipo de requisição conforme listado em About supported types for the type parameter

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

TTL

Tempo máximo de cache no servidor, em segundos

3600

data

Dados de resposta (varia de acordo com o tipo)

Nenhum

Exemplo de resposta no modo curto:

Exemplo de requisição de registro A para www.taobao.com:

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

Resposta:

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

Requisição de registro CNAME:

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

Resposta:

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

Resposta de falha

Requisições com falha retornam HTTP 4xx/5xx com um code de erro JSON para depuração ou relato de problemas.

Exemplo:

{
 "code":"UrlParameterError"
}

Lista de codes de erro

code de erro

code de status HTTP

Descrição

UrlParameterError

400

Erro de formato no parâmetro da requisição

NoPermission

401

Falha na autenticação

UrlPathError

404

Erro de URL

NoResponse

500

Tempo limite da requisição excedido, sem resposta

Nota
  1. O guia DoH JSON API Best Practices aborda a resolução de domínios com o HTTPDNS.

  2. O SDK lida com as assinaturas automaticamente. Comece a usar o Android SDK development guide ou o iOS SDK development guide.