语法
js
let resolving = browser.dns.resolve(
hostname, // string
flags // array of string
)
参数
hostname-
string。要解析的主机名。 flags可选-
arrayofstring。用于修改主机名解析方式的标志。任何省略的标志默认为false。您可以传递零个或多个以下标志"allow_name_collisions": 允许通常会被过滤掉的名称冲突结果。"bypass_cache": 禁用内部 DNS 查询缓存。"canonical_name": 将查询指定主机的规范名称。"disable_ipv4": 只返回 IPv6 地址。"disable_ipv6": 只返回 IPv4 地址。"disable_trr": 不使用信任递归解析器 (TRR) 来解析主机名。TRR 使用专用的 DNS-over-HTTPS 服务器来解析主机名。"offline": 只返回字面量和缓存的条目。"priority_low": 请求被赋予较低的优先级。如果还指定了“priority_medium”,则查询被赋予中等优先级。"priority_medium": 请求被赋予中等优先级。如果还指定了“priority_low”,则查询被赋予中等优先级。"speculate": 表明该请求是推测性的。如果浏览器配置禁用了预取,推测性请求将返回错误。
返回值
一个 Promise,它将以一个 DNSRecord 对象来 fulfilled。这个对象可以包含以下属性
addresses-
arrayofstring。与此 DNS 记录关联的 IP 地址。 canonicalName-
string。此记录的规范名称。只有当"canonical_name"标志被传递给resolve()时,才会包含在响应中。 isTRR-
boolean: 如果记录是使用信任递归解析器 (TRR) 检索的,则为true。
示例
js
function resolved(record) {
console.log(record.addresses);
}
let resolving = browser.dns.resolve("example.com");
resolving.then(resolved);
// > e.g. Array [ "192.0.2.172" ]
绕过缓存,并请求规范名称
js
function resolved(record) {
console.log(record.canonicalName);
console.log(record.addresses);
}
let resolving = browser.dns.resolve("developer.mozilla.org", [
"bypass_cache",
"canonical_name",
]);
resolving.then(resolved);
// > e.g. xyz.us-west-2.elb.amazonaws.com
// > e.g. Array [ "192.0.2.172", "198.51.100.45" ]
浏览器兼容性
加载中…