You need to enable JavaScript to run this app.
导航

解析一个或多个域名

最近更新时间2024.03.29 17:41:41

首次发布时间2022.05.20 17:46:16

API 说明

通过 HTTPDNS 服务端解析一个或多个域名。
您可以使用 httpdns.volcengineapi.com 作为请求域名,也可以向 HTTPDNS 服务端 IP 地址发送直连请求。直连请求节省了 HTTPDNS 服务端域名的 DNS 解析耗时。
您可以使用 HTTP 请求或 HTTPS 请求。HTTP 请求和 HTTPS 请求的计费不同。参见 计费说明

使用 httpdns.volcengineapi.com 作为请求域名

GET https://httpdns.volcengineapi.com/resolve?domain={domain}&account_id={account_id}&sign={sign}&timestamp={timestamp}&type={type}&ip={ip}&appid={appid}
GET http://httpdns.volcengineapi.com/resolve?domain={domain}&account_id={account_id}&sign={sign}&timestamp={timestamp}&type={type}&ip={ip}&appid={appid}

向 HTTPDNS 服务端 IP 地址发送直连请求

GET https://{ip_address}/resolve?domain={domain}&account_id={account_id}&sign={sign}&timestamp={timestamp}&type={type}&ip={ip}&appid={appid}
GET http://{ip_address}/resolve?domain={domain}&account_id={account_id}&sign={sign}&timestamp={timestamp}&type={type}&ip={ip}&appid={appid}

您可以通过 Anycast IP 地址或动态 IP 地址接入 HTTPDNS 服务端。IP 地址接入节省了 HTTPDNS 服务端域名的 DNS 解析耗时。

  • 如果您需要使用 Anycast IP 地址接入 HTTPDNS 服务端,您需要把 {ip_address} 替换为您获取的 Anycast IP 地址。

    说明

    Anycast IP 地址接入功能处于公测阶段,暂不对外公开。您可以 提交工单 联系我们获取 Anycast IP 地址。

  • 如果您需要通过动态 IP 地址接入 HTTPDNS 服务端,您需要通过 获取最佳的 HTTPDNS 服务端 IP 地址 API 获取最佳的 HTTPDNS 服务端 IP 地址,并把 {ip_address} 替换为您获取的动态 IP 地址。

请求头参数(可选)

请求头参数仅适用于 软件定义解析 AnyMatch 功能,用于在 DNS 查询请求中传入自定义标识。如果 HTTPDNS 服务端找到了匹配的自定义标识所关联的记录值,就会返回该记录值。

参数名称

数据类型

参数说明

Am-Tag

String

字符串型标识,例如 shanghai。您可以一次传入一个或多个字符串型标识。长度范围是 1 ~ 255 个字符。多个字符串型标识之间使用 / 分隔。匹配顺序是从左到右。例如,在 hebei/baoding 中,匹配顺序是 hebeibaoding

Am-ID

String

数字型标识。必须是整数,例如 123456。您一次只能传入一个数字型标识。取值范围是 0~9,999,999,999,999,999,即不能超过 16 位数字。

请求头参数示例:

Am-Tag: hebei/shijiazhuang
Am-ID: 123456

查询参数

参数名称

数据类型

是否必选

参数说明

domain

String

一个或者多个需要解析的域名。

多个域名使用英文逗号 , 分隔。最多支持输入 10 个域名。HTTPDNS 服务端只能解析已经在控制台添加的域名。参见 添加需要解析的域名

account_id

String

您的 Service ID。可以从控制台的 鉴权配置 页面获取。

sign

String

请求的签名,用来对请求进行鉴权。签名计算方法见 计算签名

timestamp

String

签名的 过期时间。时间的格式为 Unix 时间戳,单位是 毫秒

例如,您发送请求的时间是 2022 年 5 月 20 日 04:32:59(UTC 时间),您希望签名的有效期是 10 分钟,即签名会在 2022 年 5 月 20 日 04:42:59(UTC 时间)失效。那么,您需要把该参数设置为 1652992979000

警告

  • 该参数 不能 是当前时间。否则,请求到达 HTTPDNS 服务端时,签名已过期。
  • 该参数的单位必须是 毫秒

type

Integer

解析结果的 IP 地址的类型。该参数的可选值如下:

  • 0:获取双栈地址,即 IPv4 + IPv6 的地址。
  • 1:仅获取 IPv4 的地址。
  • 2:仅获取 IPv6 的地址。

默认值是 1。

ip

String

客户端的 IP 地址。

HTTPDNS 服务端可以基于客户端 IP 地址的地理位置和所属网络运营商返回匹配的解析结果。

我们不建议您设置该参数。不设置该参数时,HTTPDNS 服务端默认使用客户端发起解析请求时使用的 IP 地址。HTTPDNS 服务端优先从 X-Real-IP 请求头获取该 IP 地址。如果获取失败,HTTPDNS 服务端从 X-Forwarded-For 请求头中获取第一个 IP 地址。如果依然获取失败,则解析失败。

appid

String

应用 ID。您可以在控制台创建应用,并把应用的 应用ID 传入 getAppId 的返回值。这样,您就可以区分同一火山引擎账号下的多个应用,并且为应用单独配置自定义解析。参见 应用管理 了解详细信息。

响应正文

参数名称

参数类型

参数说明

host

String

请求解析的域名。

ttl

Integer

解析结果的有效时间,单位是秒。您可以按该参数的值缓存解析请求,在解析请求过期后再次请求 HTTPDNS 服务端解析该域名。

ips

String[]

解析结果的 IP 地址列表。

cip

String

客户端的 IP 地址。如果您设置了 ip 参数,cip 参数会返回 ip 参数的值。如果您没有设置 ip 参数,cip 参数会返回 HTTPDNS 服务端获取的客户端的 IP 地址。

请求示例

解析单个域名

GET https://httpdns.volcengineapi.com/resolve?domain=www.example.com&account_id=1234567890&sign=65m0fa70a250c431059a4ea9erm51570&timestamp=1653021179804

解析多个域名

GET https://httpdns.volcengineapi.com/resolve?domain=www.example.com,test.example.com&account_id=1234567890&sign=65m0fa70a250c431059a4ea9erm51570&timestamp=1653021179804

响应示例

解析单个域名

{
    "cip": "120.52.147.53",
    "host": "www.example.com", 
    "ips": [                
        "fec0::1",          
        "220.194.234.254",
        "101.75.228.67",
        "60.220.194.103",
        "218.12.228.81",
        "121.22.247.247"
    ],
    "ttl": 52             

}

解析多个域名

{
    "dns": [    
        {
            "host": "www.example.com",
            "ips": [
                "60.220.194.103",
                "218.12.228.81",
                "121.22.247.247",
                "220.194.234.254",
                "101.75.228.67"
            ],
            "ttl": 49
        },
        {
            "host": "test.example.com",
            "ips": [
                "119.249.48.221",
                "119.249.48.219",
                "119.249.48.185",
                "119.249.48.220",
                "119.249.48.222",
                "119.249.48.237",
                "119.249.48.236"
            ],
            "ttl": 240
        }
    ],
    cip: "120.52.147.45", 
}