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) Свойства
Методы
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) Свойства
Методы
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(): 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<>Параметры
hostname: string rrtype: string Возвращаемый тип
Promise<> функция 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 разрешается массивом объектов со следующими свойствами:
flagsserviceregexpreplacementorderpreference
{
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 разрешается объектом со следующими свойствами:
nsnamehostmasterserialrefreshretryexpireminttl
{
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 разрешается массивом объектов со следующими свойствами:
priorityweightportname
{
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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр ttl не поддерживается.
Параметры
hostname: string rrtype: "TXT" callback: (
err: ErrnoException | null,
addresses: string[][],
) => void Тип возвращаемого значения
void Перегрузка 13
resolve(
hostname: string,
rrtype: string,
callback: (
err: ErrnoException | null,
addresses: ,
) => void,
): voidПараметр ttl не поддерживается.
Параметры
hostname: string rrtype: string callback: (
err: ErrnoException | null,
addresses: ,
) => void Тип возвращаемого значения
void функция resolve4
Использование в Deno
import { resolve4 } from "node:dns";
Перегрузка 1
resolve4(
hostname: string,
callback: (
err: ErrnoException | null,
addresses: string[],
) => void,
): voidПараметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр 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Параметр ttl не поддерживается.
Использует протокол DNS для разрешения записей на основе регулярных выражений (записей NAPTR) для hostname. Аргумент addresses, переданный функции callback, будет содержать массив объектов со следующими свойствами:
flagsserviceregexpreplacementorderpreference
{
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Параметр 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Параметр 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Параметр ttl не поддерживается.
Использует протокол DNS для разрешения записи начала зоны полномочий (записи SOA) для hostname. Аргумент address, переданный функции callback, будет представлять собой объект со следующими свойствами:
nsnamehostmasterserialrefreshretryexpireminttl
{
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Параметр ttl не поддерживается.
Использует протокол DNS для разрешения записей служб (записей SRV) для hostname. Аргумент addresses, переданный функции callback, будет представлять собой массив объектов со следующими свойствами:
priorityweightportname
{
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Параметр 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
Использование в Deno
import { type AnyAaaaRecord } from "node:dns";
Свойства
type: "AAAA" интерфейс AnyARecord
Использование в Deno
import { type AnyARecord } from "node:dns";
Свойства
type: "A" интерфейс AnyCnameRecord
Использование в Deno
import { type AnyCnameRecord } from "node:dns";
интерфейс AnyMxRecord
Использование в Deno
import { type AnyMxRecord } from "node:dns";
Свойства
type: "MX" интерфейс AnyNaptrRecord
Использование в Deno
import { type AnyNaptrRecord } from "node:dns";
Свойства
type: "NAPTR" интерфейс AnyNsRecord
Использование в Deno
import { type AnyNsRecord } from "node:dns";
интерфейс AnyPtrRecord
Использование в Deno
import { type AnyPtrRecord } from "node:dns";
интерфейс AnySoaRecord
Использование в Deno
import { type AnySoaRecord } from "node:dns";
Свойства
type: "SOA" интерфейс AnySrvRecord
Использование в Deno
import { type AnySrvRecord } from "node:dns";
Свойства
type: "SRV" интерфейс AnyTxtRecord
Использование в Deno
import { type AnyTxtRecord } from "node:dns";
интерфейс 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";
интерфейс LookupAllOptions
Использование в Deno
import { type LookupAllOptions } from "node:dns";
Свойства
all: true интерфейс LookupOneOptions
Использование в 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
интерфейс RecordWithTtl
Использование в Deno
import { type RecordWithTtl } from "node:dns";
интерфейс ResolveOptions
Использование в Deno
import { type ResolveOptions } from "node:dns";
Свойства
ttl: boolean интерфейс ResolverOptions
Использование в Deno
import { type ResolverOptions } from "node:dns";
интерфейс ResolveWithTtlOptions
Использование в Deno
import { type ResolveWithTtlOptions } from "node:dns";
Свойства
ttl: true пространство имён 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'.
Классы
Независимый резолвер для DNS-запросов.
Функции
Возвращает значение по умолчанию для verbatim в lookup и dnsPromises.lookup(). Возможные значения:
Возвращает массив строк с IP-адресами, отформатированных в соответствии с RFC 5952, которые в данный момент настроены для разрешения DNS-имён. Если используется пользовательский порт, строка будет содержать номер порта.
Разрешает имя хоста (например, 'nodejs.org') в первую найденную запись A (IPv4) или AAAA (IPv6). Все свойства option необязательны. Если options — целое число, оно должно быть 4 или 6; если options не указано, возвращаются найденные IPv4- и IPv6-адреса.
Преобразует заданные address и port в имя хоста и службу с помощью базовой реализации getnameinfo операционной системы.
Использует протокол DNS для разрешения имени хоста (например, 'nodejs.org') в массив записей ресурсов. В случае успеха Promise разрешается массивом записей ресурсов. Тип и структура отдельных результатов зависят от rrtype:
Использует протокол DNS для разрешения IPv4-адресов (записей A) для hostname. В случае успеха Promise разрешается массивом IPv4-адресов (например, ['74.125.79.104', '74.125.79.105', '74.125.79.106']).
Использует протокол DNS для разрешения IPv6-адресов (записей AAAA) для hostname. В случае успеха Promise разрешается массивом IPv6-адресов.
Использует протокол DNS для разрешения всех записей (также известного как запрос ANY или *). В случае успеха Promise разрешается массивом, содержащим записи различных типов. Каждый объект имеет свойство type, указывающее тип текущей записи. В зависимости от type объект также будет содержать дополнительные свойства:
Использует протокол DNS для разрешения записей CAA для hostname. В случае успеха Promise разрешается массивом объектов с доступными записями авторизации центров сертификации для hostname (например, [{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]).
Использует протокол DNS для разрешения записей CNAME для hostname. В случае успеха Promise разрешается массивом записей канонических имён, доступных для hostname (например, ['bar.example.com']).
Использует протокол DNS для разрешения записей почтового обмена (записей MX) для hostname. В случае успеха Promise разрешается массивом объектов, содержащих свойства priority и exchange (например, [{priority: 10, exchange: 'mx.example.com'}, ...]).
Использует протокол DNS для разрешения записей на основе регулярных выражений (записей NAPTR) для hostname. В случае успеха Promise разрешается массивом объектов со следующими свойствами:
Использует протокол DNS для разрешения записей серверов имён (записей NS) для hostname. В случае успеха Promise разрешается массивом записей серверов имён, доступных для hostname (например, ['ns1.example.com', 'ns2.example.com']).
Использует протокол DNS для разрешения записей указателей (записей PTR) для hostname. В случае успеха Promise разрешается массивом строк, содержащих записи ответа.
Использует протокол DNS для разрешения записи начала зоны полномочий (записи SOA) для hostname. В случае успеха Promise разрешается объектом со следующими свойствами:
Использует протокол DNS для разрешения записей служб (записей SRV) для hostname. В случае успеха Promise разрешается массивом объектов со следующими свойствами:
Использует протокол DNS для разрешения текстовых запросов (записей TXT) для hostname. В случае успеха Promise разрешается двумерным массивом текстовых записей, доступных для hostname (например, [ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]). Каждый вложенный массив содержит фрагменты TXT одной записи. В зависимости от сценария использования их можно объединить или обрабатывать по отдельности.
Выполняет обратный DNS-запрос, преобразующий IPv4- или IPv6-адрес в массив имён хостов.
Задаёт значение по умолчанию для order в dns.lookup() и [lookup](/api/node/dns/#promises. Возможные значения:
Задаёт IP-адреса и порты серверов, используемых при разрешении DNS-имён. Аргумент servers — это массив адресов в формате RFC 5952. Если используется порт DNS по умолчанию IANA (53), его можно не указывать.
Переменные
псевдоним типа AnyRecord
Использование в Deno
import { type AnyRecord } from "node:dns";
Определение
псевдоним типа AnyRecordWithTtl
Использование в Deno
import { type AnyRecordWithTtl } from "node:dns";
Вместо этого используйте 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 переменная CONNREFUSED
Использование в Deno
import { CONNREFUSED } from "node:dns";
Тип
"ECONNREFUSED" переменная DESTRUCTION
Использование в Deno
import { DESTRUCTION } from "node:dns";
Тип
"EDESTRUCTION" переменная LOADIPHLPAPI
Использование в Deno
import { LOADIPHLPAPI } from "node:dns";
Тип
"ELOADIPHLPAPI" переменная 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" переменная 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