Spec-Zone.ru › Web Extensions

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API