語法
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" ]
瀏覽器相容性
載入中…