Node.js - Módulo DNS
Node.js dnsO módulo é usado para fazer pesquisas DNS reais, bem como para usar as funcionalidades de resolução de nomes do sistema operacional subjacente. Este módulo fornece um wrapper de rede assíncrono e pode ser importado usando a seguinte sintaxe.
var dns = require("dns")
Métodos
Sr. Não. | Método e Descrição |
---|---|
1 | dns.lookup(hostname[, options], callback) Resolve um nome de host (por exemplo, 'google.com') no primeiro registro A (IPv4) ou AAAA (IPv6) encontrado. as opções podem ser um objeto ou inteiro. Se as opções não forem fornecidas, os endereços IP v4 e v6 são válidos. Se options for um número inteiro, deve ser 4 ou 6. |
2 | dns.lookupService(address, port, callback) Resolve o endereço e a porta fornecidos em um nome de host e serviço usando getnameinfo. |
3 | dns.resolve(hostname[, rrtype], callback) Resolve um nome de host (por exemplo, 'google.com') em uma matriz dos tipos de registro especificados por rrtype. |
4 | dns.resolve4(hostname, callback) O mesmo que dns.resolve (), mas apenas para consultas IPv4 (registros A). endereços é uma matriz de endereços IPv4 (por exemplo, ['74 .125.79.104 ', '74 .125.79.105', '74 .125.79.106 ']). |
5 | dns.resolve6(hostname, callback) O mesmo que dns.resolve4 (), exceto para consultas IPv6 (uma consulta AAAA). |
6 | dns.resolveMx(hostname, callback) O mesmo que dns.resolve (), mas apenas para consultas de troca de correio (registros MX). |
7 | dns.resolveTxt(hostname, callback) O mesmo que dns.resolve (), mas apenas para consultas de texto (registros TXT). endereços é uma matriz 2-d dos registros de texto disponíveis para o nome do host (por exemplo, [['v = spf1 ip4: 0.0.0.0', '~ todos']]). Cada submatriz contém blocos TXT de um registro. Dependendo do caso de uso, eles podem ser unidos ou tratados separadamente. |
8 | dns.resolveSrv(hostname, callback) O mesmo que dns.resolve (), mas apenas para registros de serviço (registros SRV). endereços é uma matriz dos registros SRV disponíveis para o nome do host. As propriedades dos registros SRV são prioridade, peso, porta e nome (por exemplo, [{'prioridade': 10, 'peso': 5, 'porta': 21223, 'nome': 'serviço.exemplo.com'},. ..]). |
9 | dns.resolveSoa(hostname, callback) O mesmo que dns.resolve (), mas apenas para consultas de registro de autoridade (registro SOA). |
10 | dns.resolveNs(hostname, callback) O mesmo que dns.resolve (), mas apenas para registros do servidor de nomes (registros NS). endereços é uma matriz dos registros do servidor de nomes disponíveis para o nome do host (por exemplo, ['ns1.example.com', 'ns2.example.com']). |
11 | dns.resolveCname(hostname, callback) O mesmo que dns.resolve (), mas apenas para registros de nomes canônicos (registros CNAME). endereços é uma matriz dos registros de nomes canônicos disponíveis para o nome do host (por exemplo, ['bar.example.com']). |
12 | dns.reverse(ip, callback) Reverse resolve um endereço IP para uma série de nomes de host. |
13 | dns.getServers() Retorna uma matriz de endereços IP como strings que estão sendo usadas para resolução. |
14 | dns.setServers(servers) Dada uma matriz de endereços IP como strings, defina-os como os servidores a serem usados para resolução. |
rrtypes
A seguir está a lista de rrtypes válidos usados pelo método dns.resolve () -
A - endereços IPV4, padrão
AAAA - endereços IPV6
MX - registros de troca de correio
TXT - registros de texto
SRV - registros SRV
PTR - usado para pesquisas de IP reverso
NS - registros do servidor de nomes
CNAME - registros de nomes canônicos
SOA - início do registro de autoridade
Códigos de Erro
Cada consulta DNS pode retornar um dos seguintes códigos de erro -
dns.NODATA - O servidor DNS retornou uma resposta sem dados.
dns.FORMERR - A consulta de declarações do servidor DNS foi formatada incorretamente.
dns.SERVFAIL - O servidor DNS retornou uma falha geral.
dns.NOTFOUND - Nome de domínio não encontrado.
dns.NOTIMP - O servidor DNS não implementa a operação solicitada.
dns.REFUSED - O servidor DNS recusou a consulta.
dns.BADQUERY - Consulta DNS formatada incorretamente.
dns.BADNAME - Nome de host mal formatado.
dns.BADFAMILY - Família de endereços não suportados.
dns.BADRESP - Resposta DNS mal formatada.
dns.CONNREFUSED - Não foi possível contatar os servidores DNS.
dns.TIMEOUT - Tempo limite ao entrar em contato com os servidores DNS.
dns.EOF - Fim do arquivo.
dns.FILE - Erro ao ler o arquivo.
dns.NOMEM - Sem memória.
dns.DESTRUCTION - O canal está sendo destruído.
dns.BADSTR - String formatada incorretamente.
dns.BADFLAGS - Sinalizadores ilegais especificados.
dns.NONAME - O nome de host fornecido não é numérico.
dns.BADHINTS - Sinalizadores de dicas ilegais especificados.
dns.NOTINITIALIZED - a inicialização da biblioteca c-ares ainda não foi realizada.
dns.LOADIPHLPAPI - Erro ao carregar iphlpapi.dll.
dns.ADDRGETNETWORKPARAMS - Não foi possível encontrar a função GetNetworkParams.
dns.CANCELLED - Consulta DNS cancelada.
Exemplo
Crie um arquivo js chamado main.js com o seguinte código -
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));
});
});
Agora execute o main.js para ver o resultado -
$ node main.js
Verifique a saída.
address: 173.194.46.83
reverse for 173.194.46.83: ["ord08s11-in-f19.1e100.net"]