Spec-Zone.ru › Deno 2

dns

Модуль node:dns обеспечивает разрешение имён. Например, с его помощью можно находить IP-адреса по именам хостов.

Хотя модуль назван в честь системы доменных имён (DNS), для поиска он не всегда использует протокол DNS. lookup использует средства операционной системы для разрешения имён. Для этого может не потребоваться сетевое взаимодействие. Чтобы разрешать имена так же, как это делают другие приложения в той же системе, используйте lookup.

import dns from 'node:dns';

dns.lookup('example.org', (err, address, family) => {
  console.log('address: %j family: IPv%s', address, family);
});
// address: "93.184.216.34" family: IPv4

Все остальные функции модуля node:dns подключаются к реальному DNS-серверу для разрешения имён. Они всегда используют сеть для выполнения DNS-запросов. Эти функции не используют тот же набор файлов конфигурации, что и lookup (например, /etc/hosts). Используйте эти функции, чтобы всегда выполнять DNS-запросы в обход других средств разрешения имён.

import dns from 'node:dns';

dns.resolve4('archive.org', (err, addresses) => {
  if (err) throw err;

  console.log(`addresses: ${JSON.stringify(addresses)}`);

  addresses.forEach((a) => {
    dns.reverse(a, (err, hostnames) => {
      if (err) {
        throw err;
      }
      console.log(`reverse for ${a}: ${JSON.stringify(hostnames)}`);
    });
  });
});

Дополнительные сведения см. в разделе Особенности реализации.

Использование в Deno

import * as mod from "node:dns";

класс promises.Resolver

Использование в Deno

import { promises } from "node:dns";
const { Resolver } = promises;

Независимый обработчик DNS-запросов.

При создании нового обработчика используются настройки сервера по умолчанию. Установка серверов для обработчика с помощью resolver.setServers() не влияет на другие обработчики:

import { promises } from 'node:dns';
const resolver = new promises.Resolver();
resolver.setServers(['4.4.4.4']);

// This request will use the server at 4.4.4.4, independent of global settings.
resolver.resolve4('example.org').then((addresses) => {
  // ...
});

// Alternatively, the same code can be written using async-await style.
(async function() {
  const addresses = await resolver.resolve4('example.org');
})();

Доступны следующие методы из API dnsPromises:

  • resolver.getServers()
  • resolver.resolve()
  • resolver.resolve4()
  • resolver.resolve6()
  • resolver.resolveAny()
  • resolver.resolveCaa()
  • resolver.resolveCname()
  • resolver.resolveMx()
  • resolver.resolveNaptr()
  • resolver.resolveNs()
  • resolver.resolvePtr()
  • resolver.resolveSoa()
  • resolver.resolveSrv()
  • resolver.resolveTxt()
  • resolver.reverse()
  • resolver.setServers()

Конструкторы

Resolver(options?: ResolverOptions)
new

Свойства

getServers: getServers
resolve: resolve
resolve4: resolve4
resolve6: resolve6
resolveAny: resolveAny
resolveCaa: resolveCaa
resolveCname: resolveCname
resolveMx: resolveMx
resolveNaptr: resolveNaptr
resolveNs: resolveNs
resolvePtr: resolvePtr
resolveSoa: resolveSoa
resolveSrv: resolveSrv
resolveTxt: resolveTxt
reverse: reverse
setServers: setServers

Методы

cancel(): void

Отменяет все ожидающие DNS-запросы, отправленные этим обработчиком. Для соответствующих обратных вызовов будет вызвана ошибка с кодом ECANCELLED.

setLocalAddress(
ipv4?: string,
ipv6?: string,
): void

Экземпляр обработчика будет отправлять запросы с указанного IP-адреса. Это позволяет программам задавать исходящие интерфейсы при работе в системах с несколькими сетевыми интерфейсами.

Если адрес v4 или v6 не указан, используется значение по умолчанию, а операционная система автоматически выбирает локальный адрес.

При отправке запросов DNS-серверам IPv4 обработчик будет использовать локальный адрес v4, а при отправке запросов DNS-серверам IPv6 — локальный адрес v6. rrtype запросов разрешения имён не влияет на используемый локальный адрес.


класс Resolver

Использование в Deno

import { Resolver } from "node:dns";

Независимый обработчик DNS-запросов.

При создании нового обработчика используются настройки сервера по умолчанию. Установка серверов для обработчика с помощью resolver.setServers() не влияет на другие обработчики:

import { Resolver } from 'node:dns';
const resolver = new Resolver();
resolver.setServers(['4.4.4.4']);

// This request will use the server at 4.4.4.4, independent of global settings.
resolver.resolve4('example.org', (err, addresses) => {
  // ...
});

Доступны следующие методы из модуля node:dns:

  • resolver.getServers()
  • resolver.resolve()
  • resolver.resolve4()
  • resolver.resolve6()
  • resolver.resolveAny()
  • resolver.resolveCaa()
  • resolver.resolveCname()
  • resolver.resolveMx()
  • resolver.resolveNaptr()
  • resolver.resolveNs()
  • resolver.resolvePtr()
  • resolver.resolveSoa()
  • resolver.resolveSrv()
  • resolver.resolveTxt()
  • resolver.reverse()
  • resolver.setServers()

Конструкторы

Resolver(options?: ResolverOptions)
new

Свойства

getServers: getServers
resolve: resolve
resolve4: resolve4
resolve6: resolve6
resolveAny: resolveAny
resolveCaa: resolveCaa
resolveCname: resolveCname
resolveMx: resolveMx
resolveNaptr: resolveNaptr
resolveNs: resolveNs
resolvePtr: resolvePtr
resolveSoa: resolveSoa
resolveSrv: resolveSrv
resolveTxt: resolveTxt
reverse: reverse
setServers: setServers

Методы

cancel(): void

Отменяет все ожидающие DNS-запросы, отправленные этим обработчиком. Для соответствующих обратных вызовов будет вызвана ошибка с кодом ECANCELLED.

setLocalAddress(
ipv4?: string,
ipv6?: string,
): void

Экземпляр обработчика будет отправлять запросы с указанного IP-адреса. Это позволяет программам задавать исходящие интерфейсы при работе в системах с несколькими сетевыми интерфейсами.

Если адрес v4 или v6 не указан, используется значение по умолчанию, а операционная система автоматически выбирает локальный адрес.

При отправке запросов DNS-серверам IPv4 обработчик будет использовать локальный адрес v4, а при отправке запросов DNS-серверам IPv6 — локальный адрес v6. rrtype запросов разрешения имён не влияет на используемый локальный адрес.


функция getDefaultResultOrder

Использование в Deno

import { getDefaultResultOrder } from "node:dns";
getDefaultResultOrder():
"ipv4first"
| "ipv6first"
| "verbatim"

Возвращает значение по умолчанию для order в lookup и dnsPromises.lookup(). Возможные значения:

  • ipv4first: для order по умолчанию используется ipv4first.
  • ipv6first: для order по умолчанию используется ipv6first.
  • verbatim: для order по умолчанию используется verbatim.

Тип возвращаемого значения

"ipv4first"
| "ipv6first"
| "verbatim"

функция getServers

Использование в Deno

import { getServers } from "node:dns";
getServers(): string[]

Возвращает массив строк с IP-адресами в формате, соответствующем RFC 5952, которые в данный момент настроены для разрешения DNS-имён. Если используется нестандартный порт, строка будет содержать номер порта.

[
  '4.4.4.4',
  '2001:4860:4860::8888',
  '4.4.4.4:1053',
  '[2001:4860:4860::8888]:1053',
]

Тип возвращаемого значения

string[]

функция lookup

Использование в Deno

import { lookup } from "node:dns";

Перегрузка 1

lookup(
hostname: string,
family: number,
callback: (
err: ErrnoException | null,
address: string,
family: number,
) => void
,
): void

Разрешает имя хоста (например, 'nodejs.org') в первую найденную запись A (IPv4) или AAAA (IPv6). Все свойства option являются необязательными. Если options — целое число, оно должно быть 4 или 6; если options равно 0 или не указано, возвращаются найденные адреса IPv4 и IPv6.

Если для параметра all задано значение true, аргументы для callback меняются на (err, addresses), где addresses — массив объектов со свойствами address и family.

В случае ошибки err является объектом Error, где err.code — код ошибки. Обратите внимание, что err.code будет установлено в значение 'ENOTFOUND' не только в том случае, если имя хоста не существует, но и при других сбоях поиска, например при отсутствии доступных файловых дескрипторов.

dns.lookup() необязательно связан с протоколом DNS. Реализация использует средство операционной системы, которое может связывать имена с адресами и наоборот. Эта реализация может иметь тонкие, но важные последствия для поведения любой программы Node.js. Перед использованием dns.lookup() ознакомьтесь с разделом Особенности реализации.

Пример использования:

import dns from 'node:dns';
const options = {
  family: 6,
  hints: dns.ADDRCONFIG | dns.V4MAPPED,
};
dns.lookup('example.com', options, (err, address, family) =>
  console.log('address: %j family: IPv%s', address, family));
// address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6

// When options.all is true, the result will be an Array.
options.all = true;
dns.lookup('example.com', options, (err, addresses) =>
  console.log('addresses: %j', addresses));
// addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}]

Если вызвать этот метод в версии, преобразованной с помощью util.promisify(), и all не установлено в true, он возвращает Promise для Object со свойствами address и family.

Параметры

hostname: string
family: number
callback: (
err: ErrnoException | null,
address: string,
family: number,
) => void

Тип возвращаемого значения

void

Перегрузка 2

lookup(
hostname: string,
options: LookupOneOptions,
callback: (
err: ErrnoException | null,
address: string,
family: number,
) => void
,
): void

Параметры

hostname: string
options: LookupOneOptions
callback: (
err: ErrnoException | null,
address: string,
family: number,
) => void

Тип возвращаемого значения

void

Перегрузка 3

lookup(
hostname: string,
options: LookupAllOptions,
callback: (
err: ErrnoException | null,
addresses: LookupAddress[],
) => void
,
): void

Параметры

hostname: string
options: LookupAllOptions
callback: (
err: ErrnoException | null,
addresses: LookupAddress[],
) => void

Тип возвращаемого значения

void

Перегрузка 4

lookup(
hostname: string,
options: LookupOptions,
callback: (
err: ErrnoException | null,
address: string | LookupAddress[],
family: number,
) => void
,
): void

Параметры

hostname: string
options: LookupOptions
callback: (
err: ErrnoException | null,
address: string | LookupAddress[],
family: number,
) => void

Тип возвращаемого значения

void

Перегрузка 5

lookup(
hostname: string,
callback: (
err: ErrnoException | null,
address: string,
family: number,
) => void
,
): void

Параметры

hostname: string
callback: (
err: ErrnoException | null,
address: string,
family: number,
) => void

Тип возвращаемого значения

void

функция lookupService

Использование в Deno

import { lookupService } from "node:dns";
lookupService(
address: string,
port: number,
callback: (
err: ErrnoException | null,
hostname: string,
service: string,
) => void
,
): void

Преобразует заданные address и port в имя хоста и службы с помощью базовой реализации getnameinfo операционной системы.

Если address не является допустимым IP-адресом, будет выброшено исключение TypeError. Значение port будет преобразовано в число. Если оно не является допустимым номером порта, будет выброшено исключение TypeError.

В случае ошибки err является объектом Error, где err.code — код ошибки.

import dns from 'node:dns';
dns.lookupService('127.0.0.1', 22, (err, hostname, service) => {
  console.log(hostname, service);
  // Prints: localhost ssh
});

Если вызвать этот метод в версии, преобразованной с помощью util.promisify(), он возвращает Promise для Object со свойствами hostname и service.

Параметры

address: string
port: number
callback: (
err: ErrnoException | null,
hostname: string,
service: string,
) => void

Тип возвращаемого значения

void

функция promises.getDefaultResultOrder

Использование в Deno

import { promises } from "node:dns";
const { getDefaultResultOrder } = promises;
getDefaultResultOrder(): "ipv4first" | "verbatim"

Возвращает значение по умолчанию для verbatim в lookup и dnsPromises.lookup(). Возможные значения:

  • ipv4first: для verbatim по умолчанию используется false.
  • verbatim: для verbatim по умолчанию используется true.

Тип возвращаемого значения

"ipv4first" | "verbatim"

функция promises.getServers

Использование в Deno

import { promises } from "node:dns";
const { getServers } = promises;
getServers(): string[]

Возвращает массив строк с IP-адресами в формате, соответствующем RFC 5952, которые в данный момент настроены для разрешения DNS-имён. Если используется нестандартный порт, строка будет содержать номер порта.

[
  '4.4.4.4',
  '2001:4860:4860::8888',
  '4.4.4.4:1053',
  '[2001:4860:4860::8888]:1053',
]

Тип возвращаемого значения

string[]

функция promises.lookup

Использование в Deno

import { promises } from "node:dns";
const { lookup } = promises;

Перегрузка 1

lookup(
hostname: string,
family: number,
): Promise<LookupAddress>

Преобразует имя узла (например, 'nodejs.org') в первую найденную запись A (IPv4) или AAAA (IPv6). Все свойства option являются необязательными. Если options — целое число, оно должно быть 4 или 6; если options не задан, возвращаются и адреса IPv4, и IPv6, если они найдены.

Если для параметра all задано значение true, Promise разрешается, а addresses представляет собой массив объектов со свойствами address и family.

В случае ошибки Promise отклоняется с объектом Error, где err.code — код ошибки. Имейте в виду, что err.code будет иметь значение 'ENOTFOUND' не только в том случае, если имя узла не существует, но и при сбоях поиска по другим причинам, например при отсутствии доступных файловых дескрипторов.

dnsPromises.lookup() не обязательно имеет отношение к протоколу DNS. В реализации используется средство операционной системы, которое может сопоставлять имена с адресами и наоборот. Такая реализация может иметь неочевидные, но важные последствия для поведения любой программы Node.js. Прежде чем использовать dnsPromises.lookup(), ознакомьтесь с разделом Особенности реализации.

Пример использования:

import dns from 'node:dns';
const dnsPromises = dns.promises;
const options = {
  family: 6,
  hints: dns.ADDRCONFIG | dns.V4MAPPED,
};

dnsPromises.lookup('example.com', options).then((result) => {
  console.log('address: %j family: IPv%s', result.address, result.family);
  // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6
});

// When options.all is true, the result will be an Array.
options.all = true;
dnsPromises.lookup('example.com', options).then((result) => {
  console.log('addresses: %j', result);
  // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}]
});

Параметры

hostname: string
family: number

Возвращаемый тип

Promise<LookupAddress>

Перегрузка 2

lookup(
hostname: string,
options: LookupOneOptions,
): Promise<LookupAddress>

Параметры

hostname: string
options: LookupOneOptions

Возвращаемый тип

Promise<LookupAddress>

Перегрузка 3

lookup(
hostname: string,
options: LookupAllOptions,
): Promise<LookupAddress[]>

Параметры

hostname: string
options: LookupAllOptions

Возвращаемый тип

Promise<LookupAddress[]>

Перегрузка 4

lookup(
hostname: string,
options: LookupOptions,
): Promise<LookupAddress | LookupAddress[]>

Параметры

hostname: string
options: LookupOptions

Возвращаемый тип

Promise<LookupAddress | LookupAddress[]>

Перегрузка 5

lookup(hostname: string): Promise<LookupAddress>

Параметры

hostname: string

Возвращаемый тип

Promise<LookupAddress>

функция promises.lookupService

Использование в Deno

import { promises } from "node:dns";
const { lookupService } = promises;
lookupService(
address: string,
port: number,
): Promise<{ hostname: string; service: string; }>

Преобразует заданные address и port в имя узла и службу с помощью базовой реализации getnameinfo операционной системы.

Если address не является допустимым IP-адресом, будет вызвана ошибка TypeError. Значение port будет преобразовано в число. Если оно не является допустимым номером порта, будет вызвана ошибка TypeError.

В случае ошибки Promise отклоняется с объектом Error, где err.code — код ошибки.

import dnsPromises from 'node:dns';
dnsPromises.lookupService('127.0.0.1', 22).then((result) => {
  console.log(result.hostname, result.service);
  // Prints: localhost ssh
});

Параметры

address: string
port: number

Возвращаемый тип

Promise<{ hostname: string; service: string; }>

функция promises.resolve

Использование в Deno

import { promises } from "node:dns";
const { resolve } = promises;

Перегрузка 1

resolve(hostname: string): Promise<string[]>

Использует протокол DNS для преобразования имени узла (например, 'nodejs.org') в массив записей ресурсов. В случае успеха Promise разрешается массивом записей ресурсов. Тип и структура отдельных результатов зависят от rrtype:

В случае ошибки Promise отклоняется с объектом Error, где err.code — один из кодов ошибок DNS.

Параметры

hostname: string

Имя узла для разрешения.

Возвращаемый тип

Promise<string[]>

Перегрузка 2

resolve(
hostname: string,
rrtype: "A",
): Promise<string[]>

Параметры

hostname: string
rrtype: "A"

Возвращаемый тип

Promise<string[]>

Перегрузка 3

resolve(
hostname: string,
rrtype: "AAAA",
): Promise<string[]>

Параметры

hostname: string
rrtype: "AAAA"

Возвращаемый тип

Promise<string[]>

Перегрузка 4

resolve(
hostname: string,
rrtype: "ANY",
): Promise<AnyRecord[]>

Параметры

hostname: string
rrtype: "ANY"

Возвращаемый тип

Promise<AnyRecord[]>

Перегрузка 5

resolve(
hostname: string,
rrtype: "CAA",
): Promise<CaaRecord[]>

Параметры

hostname: string
rrtype: "CAA"

Возвращаемый тип

Promise<CaaRecord[]>

Перегрузка 6

resolve(
hostname: string,
rrtype: "CNAME",
): Promise<string[]>

Параметры

hostname: string
rrtype: "CNAME"

Возвращаемый тип

Promise<string[]>

Перегрузка 7

resolve(
hostname: string,
rrtype: "MX",
): Promise<MxRecord[]>

Параметры

hostname: string
rrtype: "MX"

Возвращаемый тип

Promise<MxRecord[]>

Перегрузка 8

resolve(
hostname: string,
rrtype: "NAPTR",
): Promise<NaptrRecord[]>

Параметры

hostname: string
rrtype: "NAPTR"

Возвращаемый тип

Promise<NaptrRecord[]>

Перегрузка 9

resolve(
hostname: string,
rrtype: "NS",
): Promise<string[]>

Параметры

hostname: string
rrtype: "NS"

Возвращаемый тип

Promise<string[]>

Перегрузка 10

resolve(
hostname: string,
rrtype: "PTR",
): Promise<string[]>

Параметры

hostname: string
rrtype: "PTR"

Возвращаемый тип

Promise<string[]>

Перегрузка 11

resolve(
hostname: string,
rrtype: "SOA",
): Promise<SoaRecord>

Параметры

hostname: string
rrtype: "SOA"

Возвращаемый тип

Promise<SoaRecord>

Перегрузка 12

resolve(
hostname: string,
rrtype: "SRV",
): Promise<SrvRecord[]>

Параметры

hostname: string
rrtype: "SRV"

Возвращаемый тип

Promise<SrvRecord[]>

Перегрузка 13

resolve(
hostname: string,
rrtype: "TXT",
): Promise<string[][]>

Параметры

hostname: string
rrtype: "TXT"

Возвращаемый тип

Promise<string[][]>

Перегрузка 14

resolve(
hostname: string,
rrtype: string,
): Promise<
string[]
| MxRecord[]
| NaptrRecord[]
| SoaRecord
| SrvRecord[]
| string[][]
| AnyRecord[]
>

Параметры

hostname: string
rrtype: string

Возвращаемый тип

Promise<
string[]
| MxRecord[]
| NaptrRecord[]
| SoaRecord
| SrvRecord[]
| string[][]
| AnyRecord[]
>

функция promises.resolve4

Использование в Deno

import { promises } from "node:dns";
const { resolve4 } = promises;

Перегрузка 1

resolve4(hostname: string): Promise<string[]>

Использует протокол DNS для разрешения IPv4-адресов (записей A) для hostname. В случае успеха Promise разрешается массивом IPv4-адресов (например, ['74.125.79.104', '74.125.79.105', '74.125.79.106']).

Параметры

hostname: string

Имя узла для разрешения.

Возвращаемый тип

Promise<string[]>

Перегрузка 2

resolve4(
hostname: string,
options: ResolveWithTtlOptions,
): Promise<RecordWithTtl[]>

Параметры

hostname: string
options: ResolveWithTtlOptions

Возвращаемый тип

Promise<RecordWithTtl[]>

Перегрузка 3

resolve4(
hostname: string,
options: ResolveOptions,
): Promise<string[] | RecordWithTtl[]>

Параметры

hostname: string
options: ResolveOptions

Возвращаемый тип

Promise<string[] | RecordWithTtl[]>

функция promises.resolve6

Использование в Deno

import { promises } from "node:dns";
const { resolve6 } = promises;

Перегрузка 1

resolve6(hostname: string): Promise<string[]>

Использует протокол DNS для разрешения IPv6-адресов (записей AAAA) для hostname. В случае успеха Promise разрешается массивом IPv6-адресов.

Параметры

hostname: string

Имя узла для разрешения.

Возвращаемый тип

Promise<string[]>

Перегрузка 2

resolve6(
hostname: string,
options: ResolveWithTtlOptions,
): Promise<RecordWithTtl[]>

Параметры

hostname: string
options: ResolveWithTtlOptions

Возвращаемый тип

Promise<RecordWithTtl[]>

Перегрузка 3

resolve6(
hostname: string,
options: ResolveOptions,
): Promise<string[] | RecordWithTtl[]>

Параметры

hostname: string
options: ResolveOptions

Возвращаемый тип

Promise<string[] | RecordWithTtl[]>

функция promises.resolveAny

Использование в Deno

import { promises } from "node:dns";
const { resolveAny } = promises;
resolveAny(hostname: string): Promise<AnyRecord[]>

Использует протокол DNS для разрешения всех записей (также известных как запрос ANY или *). В случае успеха объект Promise разрешается массивом, содержащим записи различных типов. У каждого объекта есть свойство type, указывающее тип текущей записи. В зависимости от type в объекте также будут присутствовать дополнительные свойства:

Пример объекта результата:

[ { type: 'A', address: '127.0.0.1', ttl: 299 },
  { type: 'CNAME', value: 'example.com' },
  { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 },
  { type: 'NS', value: 'ns1.example.com' },
  { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] },
  { type: 'SOA',
    nsname: 'ns1.example.com',
    hostmaster: 'admin.example.com',
    serial: 156696742,
    refresh: 900,
    retry: 900,
    expire: 1800,
    minttl: 60 } ]

Параметры

hostname: string

Тип возвращаемого значения

Promise<AnyRecord[]>

функция promises.resolveCaa

Использование в Deno

import { promises } from "node:dns";
const { resolveCaa } = promises;
resolveCaa(hostname: string): Promise<CaaRecord[]>

Использует протокол DNS для разрешения записей CAA для hostname. В случае успеха объект Promise разрешается массивом объектов, содержащих доступные записи об авторизации центров сертификации для hostname (например, [{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]).

Параметры

hostname: string

Тип возвращаемого значения

Promise<CaaRecord[]>

функция promises.resolveCname

Использование в Deno

import { promises } from "node:dns";
const { resolveCname } = promises;
resolveCname(hostname: string): Promise<string[]>

Использует протокол DNS для разрешения записей CNAME для hostname. В случае успеха объект Promise разрешается массивом записей канонических имён, доступных для hostname (например, ['bar.example.com']).

Параметры

hostname: string

Тип возвращаемого значения

Promise<string[]>

функция promises.resolveMx

Использование в Deno

import { promises } from "node:dns";
const { resolveMx } = promises;
resolveMx(hostname: string): Promise<MxRecord[]>

Использует протокол DNS для разрешения записей обмена почтой (записей MX) для hostname. В случае успеха объект Promise разрешается массивом объектов, содержащих свойства priority и exchange (например, [{priority: 10, exchange: 'mx.example.com'}, ...]).

Параметры

hostname: string

Тип возвращаемого значения

Promise<MxRecord[]>

функция promises.resolveNaptr

Использование в Deno

import { promises } from "node:dns";
const { resolveNaptr } = promises;
resolveNaptr(hostname: string): Promise<NaptrRecord[]>

Использует протокол DNS для разрешения записей на основе регулярных выражений (записей NAPTR) для hostname. В случае успеха объект Promise разрешается массивом объектов со следующими свойствами:

  • flags
  • service
  • regexp
  • replacement
  • order
  • preference
{
  flags: 's',
  service: 'SIP+D2U',
  regexp: '',
  replacement: '_sip._udp.example.com',
  order: 30,
  preference: 100
}

Параметры

hostname: string

Тип возвращаемого значения

Promise<NaptrRecord[]>

функция promises.resolveNs

Использование в Deno

import { promises } from "node:dns";
const { resolveNs } = promises;
resolveNs(hostname: string): Promise<string[]>

Использует протокол DNS для разрешения записей серверов имён (записей NS) для hostname. В случае успеха объект Promise разрешается массивом записей серверов имён, доступных для hostname (например, ['ns1.example.com', 'ns2.example.com']).

Параметры

hostname: string

Тип возвращаемого значения

Promise<string[]>

функция promises.resolvePtr

Использование в Deno

import { promises } from "node:dns";
const { resolvePtr } = promises;
resolvePtr(hostname: string): Promise<string[]>

Использует протокол DNS для разрешения записей указателей (записей PTR) для hostname. В случае успеха объект Promise разрешается массивом строк, содержащих записи ответа.

Параметры

hostname: string

Тип возвращаемого значения

Promise<string[]>

функция promises.resolveSoa

Использование в Deno

import { promises } from "node:dns";
const { resolveSoa } = promises;
resolveSoa(hostname: string): Promise<SoaRecord>

Использует протокол DNS для разрешения записи начала зоны полномочий (записи SOA) для hostname. В случае успеха объект Promise разрешается объектом со следующими свойствами:

  • nsname
  • hostmaster
  • serial
  • refresh
  • retry
  • expire
  • minttl
{
  nsname: 'ns.example.com',
  hostmaster: 'root.example.com',
  serial: 2013101809,
  refresh: 10000,
  retry: 2400,
  expire: 604800,
  minttl: 3600
}

Параметры

hostname: string

Тип возвращаемого значения

Promise<SoaRecord>

функция promises.resolveSrv

Использование в Deno

import { promises } from "node:dns";
const { resolveSrv } = promises;
resolveSrv(hostname: string): Promise<SrvRecord[]>

Использует протокол DNS для разрешения записей служб (записей SRV) для hostname. В случае успеха объект Promise разрешается массивом объектов со следующими свойствами:

  • priority
  • weight
  • port
  • name
{
  priority: 10,
  weight: 5,
  port: 21223,
  name: 'service.example.com'
}

Параметры

hostname: string

Тип возвращаемого значения

Promise<SrvRecord[]>

функция promises.resolveTxt

Использование в Deno

import { promises } from "node:dns";
const { resolveTxt } = promises;
resolveTxt(hostname: string): Promise<string[][]>

Использует протокол DNS для разрешения текстовых запросов (записей TXT) для hostname. В случае успеха объект Promise разрешается двумерным массивом текстовых записей, доступных для hostname (например, [ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]). Каждый вложенный массив содержит фрагменты TXT одной записи. В зависимости от сценария использования их можно объединить или обрабатывать отдельно.

Параметры

hostname: string

Тип возвращаемого значения

Promise<string[][]>

функция promises.reverse

Использование в Deno

import { promises } from "node:dns";
const { reverse } = promises;
reverse(ip: string): Promise<string[]>

Выполняет обратный DNS-запрос, преобразующий адрес IPv4 или IPv6 в массив имён хостов.

В случае ошибки объект Promise отклоняется с объектом Error, где err.code — один из кодов ошибок DNS.

Параметры

ip: string

Тип возвращаемого значения

Promise<string[]>

функция promises.setDefaultResultOrder

Использование в Deno

import { promises } from "node:dns";
const { setDefaultResultOrder } = promises;
setDefaultResultOrder(order:
"ipv4first"
| "ipv6first"
| "verbatim"
): void

Устанавливает значение по умолчанию для order в dns.lookup() и [lookup](/api/node/dns/#promises. Возможны следующие значения:

  • ipv4first: устанавливает значение order по умолчанию в ipv4first.
  • ipv6first: устанавливает значение order по умолчанию в ipv6first.
  • verbatim: устанавливает значение order по умолчанию в verbatim.

Значение по умолчанию — verbatim. Метод dnsPromises.setDefaultResultOrder() имеет более высокий приоритет, чем --dns-result-order. При использовании потоков-обработчиков вызов dnsPromises.setDefaultResultOrder() в главном потоке не повлияет на порядок DNS по умолчанию в рабочих потоках.

Параметры

order:
"ipv4first"
| "ipv6first"
| "verbatim"

должно быть 'ipv4first', 'ipv6first' или 'verbatim'.

Тип возвращаемого значения

void

функция promises.setServers

Использование в Deno

import { promises } from "node:dns";
const { setServers } = promises;
setServers(servers: readonly string[]): void

Задаёт IP-адреса и порты серверов, используемых при разрешении DNS. Аргумент servers — это массив адресов в формате RFC 5952. Если порт совпадает с портом DNS по умолчанию IANA (53), его можно не указывать.

dnsPromises.setServers([
  '4.4.4.4',
  '[2001:4860:4860::8888]',
  '4.4.4.4:1053',
  '[2001:4860:4860::8888]:1053',
]);

Если указан недопустимый адрес, будет выброшена ошибка.

Метод dnsPromises.setServers() нельзя вызывать во время выполнения DNS-запроса.

Этот метод работает примерно так же, как resolve.conf. То есть, если попытка разрешения с помощью первого указанного сервера приводит к ошибке NOTFOUND, метод resolve() не будет пытаться выполнить разрешение с помощью следующих указанных серверов. Резервные DNS-серверы будут использоваться только в том случае, если предыдущие серверы не ответят вовремя или вернут другую ошибку.

Параметры

servers: readonly string[]

массив адресов в формате RFC 5952

Тип возвращаемого значения

void

функция resolve

Использование в Deno

import { resolve } from "node:dns";

Перегрузка 1

resolve(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для преобразования имени хоста (например, 'nodejs.org') в массив ресурсных записей. Функция callback принимает аргументы (err, records). В случае успеха records будет массивом ресурсных записей. Тип и структура отдельных результатов зависят от rrtype:

В случае ошибки err — это объект Error, где err.code — одно из значений DNS error codes.

Параметры

hostname: string

Имя хоста для преобразования.

callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 2

resolve(
hostname: string,
rrtype: "A",
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "A"
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 3

resolve(
hostname: string,
rrtype: "AAAA",
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "AAAA"
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 4

resolve(
hostname: string,
rrtype: "ANY",
callback: (
err: ErrnoException | null,
addresses: AnyRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "ANY"
callback: (
err: ErrnoException | null,
addresses: AnyRecord[],
) => void

Тип возвращаемого значения

void

Перегрузка 5

resolve(
hostname: string,
rrtype: "CNAME",
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "CNAME"
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 6

resolve(
hostname: string,
rrtype: "MX",
callback: (
err: ErrnoException | null,
addresses: MxRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "MX"
callback: (
err: ErrnoException | null,
addresses: MxRecord[],
) => void

Тип возвращаемого значения

void

Перегрузка 7

resolve(
hostname: string,
rrtype: "NAPTR",
callback: (
err: ErrnoException | null,
addresses: NaptrRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "NAPTR"
callback: (
err: ErrnoException | null,
addresses: NaptrRecord[],
) => void

Тип возвращаемого значения

void

Перегрузка 8

resolve(
hostname: string,
rrtype: "NS",
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "NS"
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 9

resolve(
hostname: string,
rrtype: "PTR",
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "PTR"
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 10

resolve(
hostname: string,
rrtype: "SOA",
callback: (
err: ErrnoException | null,
addresses: SoaRecord,
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "SOA"
callback: (
err: ErrnoException | null,
addresses: SoaRecord,
) => void

Тип возвращаемого значения

void

Перегрузка 11

resolve(
hostname: string,
rrtype: "SRV",
callback: (
err: ErrnoException | null,
addresses: SrvRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "SRV"
callback: (
err: ErrnoException | null,
addresses: SrvRecord[],
) => void

Тип возвращаемого значения

void

Перегрузка 12

resolve(
hostname: string,
rrtype: "TXT",
callback: (
err: ErrnoException | null,
addresses: string[][],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: "TXT"
callback: (
err: ErrnoException | null,
addresses: string[][],
) => void

Тип возвращаемого значения

void

Перегрузка 13

resolve(
hostname: string,
rrtype: string,
callback: (
err: ErrnoException | null,
addresses:
string[]
| MxRecord[]
| NaptrRecord[]
| SoaRecord
| SrvRecord[]
| string[][]
| AnyRecord[]
,
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
rrtype: string
callback: (
err: ErrnoException | null,
addresses:
string[]
| MxRecord[]
| NaptrRecord[]
| SoaRecord
| SrvRecord[]
| string[][]
| AnyRecord[]
,
) => void

Тип возвращаемого значения

void

функция resolve4

Использование в Deno

import { resolve4 } from "node:dns";

Перегрузка 1

resolve4(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для преобразования IPv4-адресов (записей A) для hostname. Аргумент addresses, переданный функции callback, будет содержать массив IPv4-адресов (например, ['74.125.79.104', '74.125.79.105', '74.125.79.106']).

Параметры

hostname: string

Имя хоста для преобразования.

callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 2

resolve4(
hostname: string,
options: ResolveWithTtlOptions,
callback: (
err: ErrnoException | null,
addresses: RecordWithTtl[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
options: ResolveWithTtlOptions
callback: (
err: ErrnoException | null,
addresses: RecordWithTtl[],
) => void

Тип возвращаемого значения

void

Перегрузка 3

resolve4(
hostname: string,
options: ResolveOptions,
callback: (
err: ErrnoException | null,
addresses: string[] | RecordWithTtl[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
options: ResolveOptions
callback: (
err: ErrnoException | null,
addresses: string[] | RecordWithTtl[],
) => void

Тип возвращаемого значения

void

функция resolve6

Использование в Deno

import { resolve6 } from "node:dns";

Перегрузка 1

resolve6(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для преобразования IPv6-адресов (записей AAAA) для hostname. Аргумент addresses, переданный функции callback, будет содержать массив IPv6-адресов.

Параметры

hostname: string

Имя хоста для преобразования.

callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 2

resolve6(
hostname: string,
options: ResolveWithTtlOptions,
callback: (
err: ErrnoException | null,
addresses: RecordWithTtl[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
options: ResolveWithTtlOptions
callback: (
err: ErrnoException | null,
addresses: RecordWithTtl[],
) => void

Тип возвращаемого значения

void

Перегрузка 3

resolve6(
hostname: string,
options: ResolveOptions,
callback: (
err: ErrnoException | null,
addresses: string[] | RecordWithTtl[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Параметры

hostname: string
options: ResolveOptions
callback: (
err: ErrnoException | null,
addresses: string[] | RecordWithTtl[],
) => void

Тип возвращаемого значения

void

функция resolveAny

Использование в Deno

import { resolveAny } from "node:dns";
resolveAny(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: AnyRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для получения всех записей (также называемых запросом ANY или *). Аргумент ret, переданный функции callback, будет массивом, содержащим различные типы записей. У каждого объекта есть свойство type, указывающее тип текущей записи. В зависимости от type объект будет содержать дополнительные свойства:

Пример объекта ret, передаваемого обратному вызову:

[ { type: 'A', address: '127.0.0.1', ttl: 299 },
  { type: 'CNAME', value: 'example.com' },
  { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 },
  { type: 'NS', value: 'ns1.example.com' },
  { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] },
  { type: 'SOA',
    nsname: 'ns1.example.com',
    hostmaster: 'admin.example.com',
    serial: 156696742,
    refresh: 900,
    retry: 900,
    expire: 1800,
    minttl: 60 } ]

Операторы DNS-серверов могут не отвечать на запросы ANY. Возможно, лучше вызывать отдельные методы, такие как resolve4, resolveMx и т. д. Дополнительные сведения см. в RFC 8482.

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: AnyRecord[],
) => void

Тип возвращаемого значения

void

функция resolveCaa

Использование в Deno

import { resolveCaa } from "node:dns";
resolveCaa(
hostname: string,
callback: (
err: ErrnoException | null,
records: CaaRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записей CAA для hostname. Аргумент addresses, переданный функции callback, будет содержать массив записей авторизации центров сертификации, доступных для hostname (например, [{critical: 0, iodef: 'mailto:pki@example.com'}, {critical: 128, issue: 'pki.example.com'}]).

Параметры

hostname: string
callback: (
err: ErrnoException | null,
records: CaaRecord[],
) => void

Тип возвращаемого значения

void

функция resolveCname

Использование в Deno

import { resolveCname } from "node:dns";
resolveCname(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записей CNAME для hostname. Аргумент addresses, переданный функции callback, будет содержать массив записей канонических имён, доступных для hostname (например, ['bar.example.com']).

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

функция resolveMx

Использование в Deno

import { resolveMx } from "node:dns";
resolveMx(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: MxRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записей почтовых серверов (записей MX) для hostname. Аргумент addresses, переданный функции callback, будет содержать массив объектов со свойствами priority и exchange (например, [{priority: 10, exchange: 'mx.example.com'}, ...]).

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: MxRecord[],
) => void

Тип возвращаемого значения

void

функция resolveNaptr

Использование в Deno

import { resolveNaptr } from "node:dns";
resolveNaptr(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: NaptrRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записей на основе регулярных выражений (записей NAPTR) для hostname. Аргумент addresses, переданный функции callback, будет содержать массив объектов со следующими свойствами:

  • flags
  • service
  • regexp
  • replacement
  • order
  • preference
{
  flags: 's',
  service: 'SIP+D2U',
  regexp: '',
  replacement: '_sip._udp.example.com',
  order: 30,
  preference: 100
}

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: NaptrRecord[],
) => void

Тип возвращаемого значения

void

функция resolveNs

Использование в Deno

import { resolveNs } from "node:dns";
resolveNs(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записей серверов имён (записей NS) для hostname. Аргумент addresses, переданный функции callback, будет содержать массив записей серверов имён, доступных для hostname (например, ['ns1.example.com', 'ns2.example.com']).

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

функция resolvePtr

Использование в Deno

import { resolvePtr } from "node:dns";
resolvePtr(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записей указателей (записей PTR) для hostname. Аргумент addresses, переданный функции callback, будет представлять собой массив строк с записями ответа.

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: string[],
) => void

Тип возвращаемого значения

void

функция resolveSoa

Использование в Deno

import { resolveSoa } from "node:dns";
resolveSoa(
hostname: string,
callback: (
err: ErrnoException | null,
address: SoaRecord,
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записи начала зоны полномочий (записи SOA) для hostname. Аргумент address, переданный функции callback, будет представлять собой объект со следующими свойствами:

  • nsname
  • hostmaster
  • serial
  • refresh
  • retry
  • expire
  • minttl
{
  nsname: 'ns.example.com',
  hostmaster: 'root.example.com',
  serial: 2013101809,
  refresh: 10000,
  retry: 2400,
  expire: 604800,
  minttl: 3600
}

Параметры

hostname: string
callback: (
err: ErrnoException | null,
address: SoaRecord,
) => void

Тип возвращаемого значения

void

функция resolveSrv

Использование в Deno

import { resolveSrv } from "node:dns";
resolveSrv(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: SrvRecord[],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения записей служб (записей SRV) для hostname. Аргумент addresses, переданный функции callback, будет представлять собой массив объектов со следующими свойствами:

  • priority
  • weight
  • port
  • name
{
  priority: 10,
  weight: 5,
  port: 21223,
  name: 'service.example.com'
}

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: SrvRecord[],
) => void

Тип возвращаемого значения

void

функция resolveTxt

Использование в Deno

import { resolveTxt } from "node:dns";
resolveTxt(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[][],
) => void
,
): void
Совместимость с Deno

Параметр ttl не поддерживается.

Использует протокол DNS для разрешения текстовых запросов (записей TXT) для hostname. Аргумент records, переданный функции callback, представляет собой двумерный массив текстовых записей, доступных для hostname (например, [ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]). Каждый вложенный массив содержит фрагменты TXT одной записи. В зависимости от сценария использования их можно объединить или обрабатывать по отдельности.

Параметры

hostname: string
callback: (
err: ErrnoException | null,
addresses: string[][],
) => void

Тип возвращаемого значения

void

функция reverse

Использование в Deno

import { reverse } from "node:dns";
reverse(
ip: string,
callback: (
err: ErrnoException | null,
hostnames: string[],
) => void
,
): void

Выполняет обратный DNS-запрос, преобразующий адрес IPv4 или IPv6 в массив имён хостов.

В случае ошибки err — это объект Error, где err.code — один из кодов ошибок DNS.

Параметры

ip: string
callback: (
err: ErrnoException | null,
hostnames: string[],
) => void

Тип возвращаемого значения

void

функция setDefaultResultOrder

Использование в Deno

import { setDefaultResultOrder } from "node:dns";
setDefaultResultOrder(order:
"ipv4first"
| "ipv6first"
| "verbatim"
): void

Задаёт значение по умолчанию для order в lookup и dnsPromises.lookup(). Возможные значения:

  • ipv4first: задаёт значение order по умолчанию — ipv4first.
  • ipv6first: задаёт значение order по умолчанию — ipv6first.
  • verbatim: задаёт значение order по умолчанию — verbatim.

Значение по умолчанию — verbatim, а setDefaultResultOrder имеет более высокий приоритет, чем --dns-result-order. При использовании потоков-воркеров вызов setDefaultResultOrder в основном потоке не влияет на порядок DNS по умолчанию в рабочих потоках.

Параметры

order:
"ipv4first"
| "ipv6first"
| "verbatim"

должно быть 'ipv4first', 'ipv6first' или 'verbatim'.

Тип возвращаемого значения

void

функция setServers

Использование в Deno

import { setServers } from "node:dns";
setServers(servers: readonly string[]): void

Задаёт IP-адрес и порт серверов, которые будут использоваться при разрешении DNS-имён. Аргумент servers — это массив адресов в формате RFC 5952. Если указан порт DNS по умолчанию IANA (53), его можно не указывать.

dns.setServers([
  '4.4.4.4',
  '[2001:4860:4860::8888]',
  '4.4.4.4:1053',
  '[2001:4860:4860::8888]:1053',
]);

Если указан недопустимый адрес, будет выброшена ошибка.

Метод dns.setServers() нельзя вызывать во время выполнения DNS-запроса.

Метод setServers влияет только на resolve, dns.resolve*() и reverse (и в частности, не на lookup).

Этот метод работает примерно так же, как resolve.conf. То есть, если попытка разрешения имени с помощью первого указанного сервера завершается ошибкой NOTFOUND, метод resolve() не будет пробовать разрешить имя с помощью последующих серверов. Резервные DNS-серверы используются только в случае тайм-аута предыдущих серверов или возникновения другой ошибки.

Параметры

servers: readonly string[]

массив адресов в формате RFC 5952

Тип возвращаемого значения

void

интерфейс AnyAaaaRecord

расширяет RecordWithTtl

Использование в Deno

import { type AnyAaaaRecord } from "node:dns";

Свойства

type: "AAAA"

интерфейс AnyARecord

расширяет RecordWithTtl

Использование в Deno

import { type AnyARecord } from "node:dns";

Свойства

type: "A"

интерфейс AnyCnameRecord

Использование в Deno

import { type AnyCnameRecord } from "node:dns";

Свойства

type: "CNAME"
value: string

интерфейс AnyMxRecord

расширяет MxRecord

Использование в Deno

import { type AnyMxRecord } from "node:dns";

Свойства

type: "MX"

интерфейс AnyNaptrRecord

расширяет NaptrRecord

Использование в Deno

import { type AnyNaptrRecord } from "node:dns";

Свойства

type: "NAPTR"

интерфейс AnyNsRecord

Использование в Deno

import { type AnyNsRecord } from "node:dns";

Свойства

type: "NS"
value: string

интерфейс AnyPtrRecord

Использование в Deno

import { type AnyPtrRecord } from "node:dns";

Свойства

type: "PTR"
value: string

интерфейс AnySoaRecord

расширяет SoaRecord

Использование в Deno

import { type AnySoaRecord } from "node:dns";

Свойства

type: "SOA"

интерфейс AnySrvRecord

расширяет SrvRecord

Использование в Deno

import { type AnySrvRecord } from "node:dns";

Свойства

type: "SRV"

интерфейс AnyTxtRecord

Использование в Deno

import { type AnyTxtRecord } from "node:dns";

Свойства

type: "TXT"
entries: string[]

интерфейс CaaRecord

Использование в Deno

import { type CaaRecord } from "node:dns";

Свойства

critical: number
issue: string | undefined
необязательное
issuewild: string | undefined
необязательное
iodef: string | undefined
необязательное
contactemail: string | undefined
необязательное
contactphone: string | undefined
необязательное

интерфейс LookupAddress

Использование в Deno

import { type LookupAddress } from "node:dns";

Свойства

address: string

Строковое представление адреса IPv4 или IPv6.

family: number

4 или 6, обозначающее семейство address, либо 0, если адрес не является адресом IPv4 или IPv6. 0, вероятно, указывает на ошибку в службе разрешения имён, используемой операционной системой.


интерфейс LookupAllOptions

расширяет LookupOptions

Использование в Deno

import { type LookupAllOptions } from "node:dns";

Свойства

all: true

интерфейс LookupOneOptions

расширяет LookupOptions

Использование в Deno

import { type LookupOneOptions } from "node:dns";

Свойства

all: false | undefined
необязательное

интерфейс LookupOptions

Использование в Deno

import { type LookupOptions } from "node:dns";

Свойства

family:
number
| "IPv4"
| "IPv6"
| undefined
необязательное

Семейство записей. Должно быть 4, 6 или 0. Для обеспечения обратной совместимости 'IPv4' и 'IPv6' интерпретируются соответственно как 4 и 6. Значение 0 означает, что будет возвращён адрес IPv4 или IPv6. Если значение 0 используется с { all: true } (see below), возвращаются адреса IPv4 и IPv6.

hints: number | undefined
необязательное

Один или несколько поддерживаемых флагов getaddrinfo. Несколько флагов можно передать, объединив их значения с помощью побитовой операции OR.

all: boolean | undefined
необязательное

Если значение true, callback возвращает в массиве все найденные адреса. В противном случае возвращается один адрес.

order:
"ipv4first"
| "ipv6first"
| "verbatim"
| undefined
необязательное

Если значение verbatim, найденные адреса возвращаются без сортировки. Если значение ipv4first, найденные адреса сортируются: адреса IPv4 располагаются перед адресами IPv6. Если значение ipv6first, найденные адреса сортируются: адреса IPv6 располагаются перед адресами IPv4. Значение по умолчанию можно настроить с помощью setDefaultResultOrder или --dns-result-order.

verbatim: boolean | undefined
устарело
необязательное

Если значение true, callback получает адреса IPv4 и IPv6 в том порядке, в котором их вернул DNS-резолвер. Если значение false, адреса IPv4 располагаются перед адресами IPv6. Этот параметр будет объявлен устаревшим в пользу order. Если указаны оба параметра, order имеет более высокий приоритет. В новом коде следует использовать только order. Значение по умолчанию можно настроить с помощью setDefaultResultOrder


интерфейс MxRecord

Использование в Deno

import { type MxRecord } from "node:dns";

Свойства

priority: number
exchange: string

интерфейс NaptrRecord

Использование в Deno

import { type NaptrRecord } from "node:dns";

Свойства

flags: string
service: string
regexp: string
replacement: string
order: number
preference: number

интерфейс RecordWithTtl

Использование в Deno

import { type RecordWithTtl } from "node:dns";

Свойства

address: string
ttl: number

интерфейс ResolveOptions

Использование в Deno

import { type ResolveOptions } from "node:dns";

Свойства

ttl: boolean

интерфейс ResolverOptions

Использование в Deno

import { type ResolverOptions } from "node:dns";

Свойства

timeout: number | undefined
необязательное

Время ожидания запроса в миллисекундах или -1 для использования времени ожидания по умолчанию.

tries: number
необязательное

Количество попыток связаться с каждым сервером имён, которое резолвер выполнит, прежде чем прекратить попытки.


интерфейс ResolveWithTtlOptions

расширяет ResolveOptions

Использование в Deno

import { type ResolveWithTtlOptions } from "node:dns";

Свойства

ttl: true

интерфейс SoaRecord

Использование в Deno

import { type SoaRecord } from "node:dns";

Свойства

nsname: string
hostmaster: string
serial: number
refresh: number
retry: number
expire: number
minttl: number

интерфейс SrvRecord

Использование в Deno

import { type SrvRecord } from "node:dns";

Свойства

priority: number
weight: number
port: number
name: string

пространство имён promises

Использование в Deno

import { promises } from "node:dns";

API dns.promises предоставляет альтернативный набор асинхронных методов DNS, которые возвращают объекты Promise вместо использования обратных вызовов. Доступ к API осуществляется через import { promises as dnsPromises } from 'node:dns' или import dnsPromises from 'node:dns/promises'.

Классы

promises.Resolver

Независимый резолвер для DNS-запросов.

  • cancel
  • getServers
  • resolve
  • resolve4
  • resolve6
  • resolveAny
  • resolveCaa
  • resolveCname
  • resolveMx
  • resolveNaptr
  • resolveNs
  • resolvePtr
  • resolveSoa
  • resolveSrv
  • resolveTxt
  • reverse
  • setLocalAddress
  • setServers

Функции

promises.getDefaultResultOrder

Возвращает значение по умолчанию для verbatim в lookup и dnsPromises.lookup(). Возможные значения:

promises.getServers

Возвращает массив строк с IP-адресами, отформатированных в соответствии с RFC 5952, которые в данный момент настроены для разрешения DNS-имён. Если используется пользовательский порт, строка будет содержать номер порта.

promises.lookup

Разрешает имя хоста (например, 'nodejs.org') в первую найденную запись A (IPv4) или AAAA (IPv6). Все свойства option необязательны. Если options — целое число, оно должно быть 4 или 6; если options не указано, возвращаются найденные IPv4- и IPv6-адреса.

promises.lookupService

Преобразует заданные address и port в имя хоста и службу с помощью базовой реализации getnameinfo операционной системы.

promises.resolve

Использует протокол DNS для разрешения имени хоста (например, 'nodejs.org') в массив записей ресурсов. В случае успеха Promise разрешается массивом записей ресурсов. Тип и структура отдельных результатов зависят от rrtype:

promises.resolve4

Использует протокол DNS для разрешения IPv4-адресов (записей A) для hostname. В случае успеха Promise разрешается массивом IPv4-адресов (например, ['74.125.79.104', '74.125.79.105', '74.125.79.106']).

promises.resolve6

Использует протокол DNS для разрешения IPv6-адресов (записей AAAA) для hostname. В случае успеха Promise разрешается массивом IPv6-адресов.

promises.resolveAny

Использует протокол DNS для разрешения всех записей (также известного как запрос ANY или *). В случае успеха Promise разрешается массивом, содержащим записи различных типов. Каждый объект имеет свойство type, указывающее тип текущей записи. В зависимости от type объект также будет содержать дополнительные свойства:

promises.resolveCaa

Использует протокол DNS для разрешения записей CAA для hostname. В случае успеха Promise разрешается массивом объектов с доступными записями авторизации центров сертификации для hostname (например, [{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]).

promises.resolveCname

Использует протокол DNS для разрешения записей CNAME для hostname. В случае успеха Promise разрешается массивом записей канонических имён, доступных для hostname (например, ['bar.example.com']).

promises.resolveMx

Использует протокол DNS для разрешения записей почтового обмена (записей MX) для hostname. В случае успеха Promise разрешается массивом объектов, содержащих свойства priority и exchange (например, [{priority: 10, exchange: 'mx.example.com'}, ...]).

promises.resolveNaptr

Использует протокол DNS для разрешения записей на основе регулярных выражений (записей NAPTR) для hostname. В случае успеха Promise разрешается массивом объектов со следующими свойствами:

promises.resolveNs

Использует протокол DNS для разрешения записей серверов имён (записей NS) для hostname. В случае успеха Promise разрешается массивом записей серверов имён, доступных для hostname (например, ['ns1.example.com', 'ns2.example.com']).

promises.resolvePtr

Использует протокол DNS для разрешения записей указателей (записей PTR) для hostname. В случае успеха Promise разрешается массивом строк, содержащих записи ответа.

promises.resolveSoa

Использует протокол DNS для разрешения записи начала зоны полномочий (записи SOA) для hostname. В случае успеха Promise разрешается объектом со следующими свойствами:

promises.resolveSrv

Использует протокол DNS для разрешения записей служб (записей SRV) для hostname. В случае успеха Promise разрешается массивом объектов со следующими свойствами:

promises.resolveTxt

Использует протокол DNS для разрешения текстовых запросов (записей TXT) для hostname. В случае успеха Promise разрешается двумерным массивом текстовых записей, доступных для hostname (например, [ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]). Каждый вложенный массив содержит фрагменты TXT одной записи. В зависимости от сценария использования их можно объединить или обрабатывать по отдельности.

promises.reverse

Выполняет обратный DNS-запрос, преобразующий IPv4- или IPv6-адрес в массив имён хостов.

promises.setDefaultResultOrder

Задаёт значение по умолчанию для order в dns.lookup() и [lookup](/api/node/dns/#promises. Возможные значения:

promises.setServers

Задаёт IP-адреса и порты серверов, используемых при разрешении DNS-имён. Аргумент servers — это массив адресов в формате RFC 5952. Если используется порт DNS по умолчанию IANA (53), его можно не указывать.

Переменные

promises.ADDRGETNETWORKPARAMS
Документация отсутствует
promises.BADFAMILY
Документация отсутствует
promises.BADFLAGS
Документация отсутствует
promises.BADHINTS
Документация отсутствует
promises.BADNAME
Документация отсутствует
promises.BADQUERY
Документация отсутствует
promises.BADRESP
Документация отсутствует
promises.BADSTR
Документация отсутствует
promises.CANCELLED
Документация отсутствует
promises.CONNREFUSED
Документация отсутствует
promises.DESTRUCTION
Документация отсутствует
promises.EOF
Документация отсутствует
promises.FILE
Документация отсутствует
promises.FORMERR
Документация отсутствует
promises.LOADIPHLPAPI
Документация отсутствует
promises.NODATA
Документация отсутствует
promises.NOMEM
Документация отсутствует
promises.NONAME
Документация отсутствует
promises.NOTFOUND
Документация отсутствует
promises.NOTIMP
Документация отсутствует
promises.NOTINITIALIZED
Документация отсутствует
promises.REFUSED
Документация отсутствует
promises.SERVFAIL
Документация отсутствует
promises.TIMEOUT
Документация отсутствует

псевдоним типа AnyRecord

Использование в Deno

import { type AnyRecord } from "node:dns";

Определение

AnyARecord
| AnyAaaaRecord
| AnyCnameRecord
| AnyMxRecord
| AnyNaptrRecord
| AnyNsRecord
| AnyPtrRecord
| AnySoaRecord
| AnySrvRecord
| AnyTxtRecord

псевдоним типа AnyRecordWithTtl

Использование в Deno

import { type AnyRecordWithTtl } from "node:dns";
Устарело

Вместо этого используйте AnyARecord или AnyAaaaRecord.

Определение

AnyARecord | AnyAaaaRecord

переменная ADDRCONFIG

Использование в Deno

import { ADDRCONFIG } from "node:dns";

Ограничивает типы возвращаемых адресов типами нелокальных адресов, настроенных в системе. Например, IPv4-адреса возвращаются, только если в текущей системе настроен хотя бы один IPv4-адрес.

Тип

number

переменная ADDRGETNETWORKPARAMS

Использование в Deno

import { ADDRGETNETWORKPARAMS } from "node:dns";

Тип

"EADDRGETNETWORKPARAMS"

переменная ALL

Использование в Deno

import { ALL } from "node:dns";

Если указано dns.V4MAPPED, возвращаются как разрешённые IPv6-адреса, так и IPv4-адреса, сопоставленные с IPv6.

Тип

number

переменная BADFAMILY

Использование в Deno

import { BADFAMILY } from "node:dns";

Тип

"EBADFAMILY"

переменная BADFLAGS

Использование в Deno

import { BADFLAGS } from "node:dns";

Тип

"EBADFLAGS"

переменная BADHINTS

Использование в Deno

import { BADHINTS } from "node:dns";

Тип

"EBADHINTS"

переменная BADNAME

Использование в Deno

import { BADNAME } from "node:dns";

Тип

"EBADNAME"

переменная BADQUERY

Использование в Deno

import { BADQUERY } from "node:dns";

Тип

"EBADQUERY"

переменная BADRESP

Использование в Deno

import { BADRESP } from "node:dns";

Тип

"EBADRESP"

переменная BADSTR

Использование в Deno

import { BADSTR } from "node:dns";

Тип

"EBADSTR"

переменная CANCELLED

Использование в Deno

import { CANCELLED } from "node:dns";

Тип

"ECANCELLED"

переменная CONNREFUSED

Использование в Deno

import { CONNREFUSED } from "node:dns";

Тип

"ECONNREFUSED"

переменная DESTRUCTION

Использование в Deno

import { DESTRUCTION } from "node:dns";

Тип

"EDESTRUCTION"

переменная EOF

Использование в Deno

import { EOF } from "node:dns";

Тип

"EOF"

переменная FILE

Использование в Deno

import { FILE } from "node:dns";

Тип

"EFILE"

переменная FORMERR

Использование в Deno

import { FORMERR } from "node:dns";

Тип

"EFORMERR"

переменная LOADIPHLPAPI

Использование в Deno

import { LOADIPHLPAPI } from "node:dns";

Тип

"ELOADIPHLPAPI"

переменная NODATA

Использование в Deno

import { NODATA } from "node:dns";

Тип

"ENODATA"

переменная NOMEM

Использование в Deno

import { NOMEM } from "node:dns";

Тип

"ENOMEM"

переменная NONAME

Использование в Deno

import { NONAME } from "node:dns";

Тип

"ENONAME"

переменная NOTFOUND

Использование в Deno

import { NOTFOUND } from "node:dns";

Тип

"ENOTFOUND"

переменная NOTIMP

Использование в Deno

import { NOTIMP } from "node:dns";

Тип

"ENOTIMP"

переменная NOTINITIALIZED

Использование в Deno

import { NOTINITIALIZED } from "node:dns";

Тип

"ENOTINITIALIZED"

переменная promises.ADDRGETNETWORKPARAMS

Использование в Deno

import { promises } from "node:dns";
const { ADDRGETNETWORKPARAMS } = promises;

Тип

"EADDRGETNETWORKPARAMS"

переменная promises.BADFAMILY

Использование в Deno

import { promises } from "node:dns";
const { BADFAMILY } = promises;

Тип

"EBADFAMILY"

переменная promises.BADFLAGS

Использование в Deno

import { promises } from "node:dns";
const { BADFLAGS } = promises;

Тип

"EBADFLAGS"

переменная promises.BADHINTS

Использование в Deno

import { promises } from "node:dns";
const { BADHINTS } = promises;

Тип

"EBADHINTS"

переменная promises.BADNAME

Использование в Deno

import { promises } from "node:dns";
const { BADNAME } = promises;

Тип

"EBADNAME"

переменная promises.BADQUERY

Использование в Deno

import { promises } from "node:dns";
const { BADQUERY } = promises;

Тип

"EBADQUERY"

переменная promises.BADRESP

Использование в Deno

import { promises } from "node:dns";
const { BADRESP } = promises;

Тип

"EBADRESP"

переменная promises.BADSTR

Использование в Deno

import { promises } from "node:dns";
const { BADSTR } = promises;

Тип

"EBADSTR"

переменная promises.CANCELLED

Использование в Deno

import { promises } from "node:dns";
const { CANCELLED } = promises;

Тип

"ECANCELLED"

переменная promises.CONNREFUSED

Использование в Deno

import { promises } from "node:dns";
const { CONNREFUSED } = promises;

Тип

"ECONNREFUSED"

переменная promises.DESTRUCTION

Использование в Deno

import { promises } from "node:dns";
const { DESTRUCTION } = promises;

Тип

"EDESTRUCTION"

переменная promises.EOF

Использование в Deno

import { promises } from "node:dns";
const { EOF } = promises;

Тип

"EOF"

переменная promises.FILE

Использование в Deno

import { promises } from "node:dns";
const { FILE } = promises;

Тип

"EFILE"

переменная promises.FORMERR

Использование в Deno

import { promises } from "node:dns";
const { FORMERR } = promises;

Тип

"EFORMERR"

переменная promises.LOADIPHLPAPI

Использование в Deno

import { promises } from "node:dns";
const { LOADIPHLPAPI } = promises;

Тип

"ELOADIPHLPAPI"

переменная promises.NODATA

Использование в Deno

import { promises } from "node:dns";
const { NODATA } = promises;

Тип

"ENODATA"

переменная promises.NOMEM

Использование в Deno

import { promises } from "node:dns";
const { NOMEM } = promises;

Тип

"ENOMEM"

переменная promises.NONAME

Использование в Deno

import { promises } from "node:dns";
const { NONAME } = promises;

Тип

"ENONAME"

переменная promises.NOTFOUND

Использование в Deno

import { promises } from "node:dns";
const { NOTFOUND } = promises;

Тип

"ENOTFOUND"

переменная promises.NOTIMP

Использование в Deno

import { promises } from "node:dns";
const { NOTIMP } = promises;

Тип

"ENOTIMP"

переменная promises.NOTINITIALIZED

Использование в Deno

import { promises } from "node:dns";
const { NOTINITIALIZED } = promises;

Тип

"ENOTINITIALIZED"

переменная promises.REFUSED

Использование в Deno

import { promises } from "node:dns";
const { REFUSED } = promises;

Тип

"EREFUSED"

переменная promises.SERVFAIL

Использование в Deno

import { promises } from "node:dns";
const { SERVFAIL } = promises;

Тип

"ESERVFAIL"

переменная promises.TIMEOUT

Использование в Deno

import { promises } from "node:dns";
const { TIMEOUT } = promises;

Тип

"ETIMEOUT"

переменная REFUSED

Использование в Deno

import { REFUSED } from "node:dns";

Тип

"EREFUSED"

переменная SERVFAIL

Использование в Deno

import { SERVFAIL } from "node:dns";

Тип

"ESERVFAIL"

переменная TIMEOUT

Использование в Deno

import { TIMEOUT } from "node:dns";

Тип

"ETIMEOUT"

переменная V4MAPPED

Использование в Deno

import { V4MAPPED } from "node:dns";

Если указано семейство IPv6, но адреса IPv6 не найдены, возвращаются адреса IPv6, отображающие IPv4. Эта функция не поддерживается в некоторых операционных системах (например, FreeBSD 10.1).

Тип

number

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/dns

Spec-Zone.ru

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