От автора: Модуль dns в Node.js используется для поиска фактических DNS, а также для применения функций обработки имен базовой операционной системы. Этот модуль предоставляет асинхронную сетевую оболочку и может быть импортирован с помощью следующего синтаксиса.
1 |
var dns = require("dns") |
Методы
dns.lookup(hostname[, options], callback) — Преобразует имя хоста (например, google.com) в первую найденную A (IPv4) или AAAA (IPv6) запись. Параметры могут указываться, как объект или как целое число. Если параметры не указаны, то действительны IP-адреса v4 и v6. Если параметры являются целыми числами, то это должно быть 4 или 6.
dns.lookupService(address, port, callback) — Устанавливает данный адрес и порт для имени хоста и службы, используя getnameinfo.
dns.resolve(hostname[, rrtype], callback) — Преобразует имя хоста (например, google.com) в массив типов записей, указанных в rrtype.
dns.resolve4(hostname, callback) — То же, что и dns.resolve(), но только для запросов IPv4 (записи A). Адреса — это массив IP-адресов v4 (например, [’74 .125.79.104 ‘, ’74 .125.79.105’, ’74 .125.79.106 ‘]).
dns.resolve6(hostname, callback) — То же, что и dns.resolve4(), только для запросов IPv6 (запрос AAAA).
dns.resolveMx(hostname, callback) — То же, что и dns.resolve(),только для почтовых запросов (записи MX).
dns.resolveTxt(hostname, callback) — То же, что и dns.resolve(),только для текстовых запросов (записей TXT). адрес — это 2-й массив текстовых записей, доступных для имени хоста (например, [[‘v = spf1 ip4: 0.0.0.0,’ ~ all]]). Каждый поддиапазон содержит фрагменты TXT одной записи. В зависимости от варианта использования они могут быть объединены или обработаны отдельно.
dns.resolveSrv(hostname, callback) — То же, что и dns.resolve(),только для записей службы (записи SRV). адрес — это массив записей SRV, доступных для имени хоста. Свойства записей SRV — это приоритет, вес, порт и имя (например, [{‘priority’: 10, ‘weight’: 5, ‘port’: 21223, ‘name’: ‘service.example.com’}. ..]).
dns.resolveSoa(hostname, callback) — То же, что и dns.resolve(),только для начала запросов на авторизацию (запись SOA).
dns.resolveNs(hostname, callback) — То же, что и dns.resolve(),только для записей сервера имен (NS records). address — это массив записей сервера имен, доступных для имени хоста (например, [‘ns1.example.com’, ‘ns2.example.com’]).
dns.resolveCname(hostname, callback) — То же, что и dns.resolve(),только для записей канонических имен (записей CNAME). адрес — это массив записей канонических имен, доступных для имени хоста (например, [‘bar.example.com’]).
dns.reverse(ip, callback) — Обратное преобразование ip-адреса в массив имен хостов.
dns.getServers() — Возвращает массив IP-адресов в виде строк, которые в настоящее время используются для обработки.
dns.setServers(servers) — Учитывая массив IP-адресов в виде строк, устанавливает их в качестве серверов, которые будут использоваться для обработки.
rrtypes
Ниже приведен список допустимых rrtypes, используемых методом dns.resolve()
A – IP-адреса V4, по умолчанию
AAAA – IP-адреса V6
MX — почтовые записи
TXT — текстовые записи
SRV — записи SRV
PTR — используется для обратного поиска IP
NS — записи сервера имен
CNAME — записи канонических имен
SOA — начало записи прав доступа
Коды ошибок
Каждый запрос DNS может возвращать один из следующих кодов ошибок:
dns.NODATA — DNS-сервер вернул ответ без данных.
dns.FORMERR — запрос заявок на сервер DNS был неверно определен.
dns.SERVFAIL — DNS-сервер возвратил общую ошибку.
dns.NOTFOUND — имя домена не найдено.
dns.NOTIMP — DNS-сервер не выполняет запрошенную операцию.
dns.REFUSED — DNS-сервер отклонил запрос.
dns.BADQUERY — неверный запрос DNS.
dns.BADNAME — некорректный формат имени хоста.
dns.BADFAMILY — неподдерживаемое семейство адресов.
dns.BADRESP — ответ на неверный DNS.
dns.CONNREFUSED — не удалось связаться с DNS-серверами.
dns.TIMEOUT — задержка при обращении к DNS-серверам.
dns.EOF — конец файла.
dns.FILE — ошибка чтения файла.
dns.NOMEM — недостаточно памяти.
dns.DESTRUCTION — канал удаляется.
dns.BADSTR — неверная строка.
dns.BADFLAGS — указаны недопустимые флаги.
dns.NONAME — данное имя хоста не является числовым.
dns.BADHINTS — указаны недопустимые флаги подсказок.
dns.NOTINITIALIZED — инициализация библиотеки c-ares еще не выполнена.
dns.LOADIPHLPAPI — ошибка при загрузке iphlpapi.dll.
dns.ADDRGETNETWORKPARAMS — не удалось найти функцию GetNetworkParams.
dns.CANCELLED — DNS-запрос аннулирован.
Пример
Создайте файл js с именем main.js со следующим кодом:
1 2 3 4 5 6 7 8 9 10 11 12 |
var dns = require('dns'); dns.lookup('www.google.com', function onLookup(err, address, family) { console.log('address:', address); dns.reverse(address, function (err, hostnames) { if (err) { console.log(err.stack); } console.log('reverse for ' + address + ': ' + JSON.stringify(hostnames)); }); }); |
Теперь запустите main.js:
1 |
$ node main.js |
В результате вы должны получить следующее.
1 2 |
address: 173.194.46.83 reverse for 173.194.46.83: ["ord08s11-in-f19.1e100.net"] |
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.