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", 
}