Node.js - Módulo DNS

Node.js dnsEl módulo se utiliza para realizar búsquedas de DNS reales, así como para utilizar las funciones de resolución de nombres del sistema operativo subyacente. Este módulo proporciona una envoltura de red asincrónica y se puede importar utilizando la siguiente sintaxis.

var dns = require("dns")

Métodos

No Señor. Método y descripción
1

dns.lookup(hostname[, options], callback)

Resuelve un nombre de host (por ejemplo, "google.com") en el primer registro A (IPv4) o AAAA (IPv6) encontrado. las opciones pueden ser un objeto o un entero. Si no se proporcionan opciones, las direcciones IP v4 y v6 son válidas. Si options es un número entero, entonces debe ser 4 o 6.

2

dns.lookupService(address, port, callback)

Resuelve la dirección y el puerto dados en un nombre de host y un servicio usando getnameinfo.

3

dns.resolve(hostname[, rrtype], callback)

Resuelve un nombre de host (por ejemplo, "google.com") en una matriz de los tipos de registro especificados por rrtype.

4

dns.resolve4(hostname, callback)

Lo mismo que dns.resolve (), pero solo para consultas IPv4 (registros A). direcciones es una matriz de direcciones IPv4 (por ejemplo, ['74 .125.79.104 ', '74 .125.79.105', '74 .125.79.106 ']).

5

dns.resolve6(hostname, callback)

Lo mismo que dns.resolve4 () excepto para consultas IPv6 (una consulta AAAA).

6

dns.resolveMx(hostname, callback)

Lo mismo que dns.resolve (), pero solo para consultas de intercambio de correo (registros MX).

7

dns.resolveTxt(hostname, callback)

Lo mismo que dns.resolve (), pero solo para consultas de texto (registros TXT). direcciones es una matriz de 2-d de los registros de texto disponibles para el nombre de host (por ejemplo, [['v = spf1 ip4: 0.0.0.0', '~ todos']]). Cada submatriz contiene fragmentos TXT de un registro. Según el caso de uso, se pueden unir o tratar por separado.

8

dns.resolveSrv(hostname, callback)

Lo mismo que dns.resolve (), pero solo para registros de servicio (registros SRV). direcciones es una matriz de registros SRV disponibles para el nombre de host. Las propiedades de los registros SRV son prioridad, peso, puerto y nombre (por ejemplo, [{'prioridad': 10, 'peso': 5, 'puerto': 21223, 'nombre': 'service.example.com'},. ..]).

9

dns.resolveSoa(hostname, callback)

Lo mismo que dns.resolve (), pero solo para el inicio de consultas de registro de autoridad (registro SOA).

10

dns.resolveNs(hostname, callback)

Lo mismo que dns.resolve (), pero solo para los registros del servidor de nombres (registros NS). direcciones es una matriz de los registros del servidor de nombres disponibles para el nombre de host (por ejemplo, ['ns1.example.com', 'ns2.example.com']).

11

dns.resolveCname(hostname, callback)

Lo mismo que dns.resolve (), pero solo para registros de nombres canónicos (registros CNAME). direcciones es una matriz de registros de nombres canónicos disponibles para el nombre de host (por ejemplo, ['bar.example.com']).

12

dns.reverse(ip, callback)

Reverse resuelve una dirección IP en una matriz de nombres de host.

13

dns.getServers()

Devuelve una matriz de direcciones IP como cadenas que se utilizan actualmente para la resolución.

14

dns.setServers(servers)

Dada una serie de direcciones IP como cadenas, configúrelas como los servidores que se utilizarán para la resolución.

rrtypes

A continuación se muestra la lista de rrtypes válidos utilizados por el método dns.resolve ():

  • A - Direcciones IPV4, predeterminadas

  • AAAA - Direcciones IPV6

  • MX - registros de intercambio de correo

  • TXT - registros de texto

  • SRV - Registros SRV

  • PTR - utilizado para búsquedas inversas de IP

  • NS - registros del servidor de nombres

  • CNAME - registros de nombres canónicos

  • SOA - inicio de registro de autoridad

Códigos de error

Cada consulta de DNS puede devolver uno de los siguientes códigos de error:

  • dns.NODATA - El servidor DNS devolvió la respuesta sin datos.

  • dns.FORMERR - La consulta de reclamaciones del servidor DNS estaba mal formateada.

  • dns.SERVFAIL - El servidor DNS devolvió una falla general.

  • dns.NOTFOUND - Nombre de dominio no encontrado.

  • dns.NOTIMP - El servidor DNS no implementa la operación solicitada.

  • dns.REFUSED - El servidor DNS rechazó la consulta.

  • dns.BADQUERY - Consulta de DNS mal formateada.

  • dns.BADNAME - Nombre de host mal formateado.

  • dns.BADFAMILY - Familia de direcciones no admitida.

  • dns.BADRESP - Respuesta DNS mal formateada.

  • dns.CONNREFUSED - No se pudo contactar con los servidores DNS.

  • dns.TIMEOUT - Tiempo de espera al contactar con los servidores DNS.

  • dns.EOF - Fin de archivo.

  • dns.FILE - Error al leer el archivo.

  • dns.NOMEM - Sin memoria.

  • dns.DESTRUCTION - El canal está siendo destruido.

  • dns.BADSTR - Cadena mal formateada.

  • dns.BADFLAGS - Banderas ilegales especificadas.

  • dns.NONAME - El nombre de host dado no es numérico.

  • dns.BADHINTS - Indicadores de pistas ilegales especificados.

  • dns.NOTINITIALIZED - La inicialización de la biblioteca c-ares aún no se ha realizado.

  • dns.LOADIPHLPAPI - Error al cargar iphlpapi.dll.

  • dns.ADDRGETNETWORKPARAMS - No se pudo encontrar la función GetNetworkParams.

  • dns.CANCELLED - Consulta de DNS cancelada.

Ejemplo

Cree un archivo js llamado main.js con el siguiente 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));
   });  
});

Ahora ejecute main.js para ver el resultado:

$ node main.js

Verifique la salida.

address: 173.194.46.83
reverse for 173.194.46.83: ["ord08s11-in-f19.1e100.net"]