dns.resolve()
Разрешает заданное имя хоста до записи DNS.
Это асинхронная функция, которая возвращает Promise.
Синтаксис
let resolving = browser.dns.resolve( hostname, // string flags // array of string )
Параметры
hostname-
string. Имя хоста для разрешения. -
flagsНеобязательно -
arrayфлаговstring. Флаги для изменения способа разрешения имени хоста. Любые пропущенные флаги по умолчанию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": Указывает, что запрос является спекулятивным. Спекулятивные запросы возвращают ошибки, если предварительная выборка отключена настройками браузера.
-
Значение возврата
A Promise, который будет выполнен с объектом DNSRecord. Этот объект может содержать следующие свойства:
addresses-
arrayадресовstring. IP-адреса, связанные с этой записью DNS. canonicalName-
string. Каноническое имя для этой записи. Это включается в ответ только в том случае, если флаг"canonical_name"был передан вresolve(). isTRR-
boolean:trueесли запись была получена с помощью доверенного рекурсивного разрешителя (TRR).
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
resolve |
Нет | Нет | 60 | ? | Нет | Нет | ? | ? | 60 | ? | Нет | ? |
Примеры
function resolved(record) { console.log(record.addresses); } let resolving = browser.dns.resolve("example.com"); resolving.then(resolved); // > e.g. Array [ "73.284.240.12" ]
Пропустить кэш и запросить каноническое имя:
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 [ "78.18.187.134", "34.79.135.234" ]
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns/resolve