Red de conocimiento informático - Material del sitio web - Cómo usar el módulo DNS en Node.js (tutorial detallado)

Cómo usar el módulo DNS en Node.js (tutorial detallado)

Este artículo presenta en detalle los puntos de conocimiento relevantes del módulo DNS en Node.js y comparte el código de ejemplo relevante. Los amigos interesados ​​pueden consultarlo.

1. DNS

En Node.js, el módulo DNS se proporciona para implementar la búsqueda de nombres de dominio y el procesamiento de resolución de nombres de dominio.

En el módulo DNS, se proporcionan tres métodos principales y una serie de métodos convenientes.

Método de resolución: se utiliza para resolver un nombre de dominio en un conjunto de registros DNS.

Método inverso: Se utiliza para convertir una dirección IP en un conjunto de nombres de dominio.

Método de búsqueda: Se utiliza para convertir un nombre de dominio en una dirección IP.

Los otros métodos convenientes en el módulo DNS son todas formas convenientes del método de resolución.

2. Utilice el método de resolución para resolver el nombre de dominio en un registro DNS

`DNS.resolve(dominio, [rrtype], callback(err, dirección){... })`

El parámetro de dominio es una cadena utilizada para especificar el nombre de dominio que debe resolverse, que puede incluir nombres de subdominio.

El parámetro rrtypr es una cadena que se utiliza para especificar el tipo de registro que se obtendrá. Los tipos de registro que se pueden especificar son los siguientes.

A, el valor de este parámetro es el valor predeterminado. Cuando el tipo de registro es A, el registro asigna una dirección IPv4 a un nombre de dominio.

AAAA, cuando el tipo de registro es AAAA, este registro asigna una dirección IPv6 a un nombre de dominio.

CNAME, cuando el tipo de registro es CNAME, significa que el registro es un registro de alias de un nombre de dominio. Por ejemplo, un registro de nombre de dominio www.example.com puede ser un registro de alias de un ejemplo. Registro de nombre de dominio .com.

MX, el registro MX apunta a un servidor de correo en un dominio que utiliza SMTP. Por ejemplo, cuando desea enviar un correo electrónico a la dirección de correo persona@dominio.com, el registro MX del dominio. El dominio .com guarda el envío. La dirección del servidor de correo electrónico cuando se envió el correo electrónico.

TXT, el registro TXT es un registro de descripción adjunto al nombre de dominio.

SRV, los registros SRV se utilizan para proporcionar información de todos los servicios disponibles en un dominio específico.

PTR, el registro PTR se utiliza para la resolución inversa de direcciones. Este registro asigna un nombre de dominio a una dirección IPv4.

Los registros NS, NS (Servidor de nombres) son registros del servidor de nombres de dominio, que se utilizan para especificar qué servidor DNS resuelve el nombre de dominio.

La función de devolución de llamada tiene dos parámetros. err es el objeto de error que se activa cuando falla la resolución del nombre de dominio. El parámetro de direcciones es una matriz que almacena todos los registros DNS obtenidos.

3. Varios métodos convenientes personalizados para el método de resolución

DNS.resolve4(dominio, devolución de llamada), obtener dirección IPv4

DNS.resolve6(dominio, devolución de llamada) ) devolución de llamada), obtener la dirección IPv6

DNS.resolveMx(dominio, devolución de llamada), obtener el registro MX, registro del servidor de intercambio de correo

DNS.resolveTxt(dominio, devolución de llamada), obtener el registro TXT, registros de descripción adjuntos a nombres de dominio

DNS.resolveSrv(dominio, devolución de llamada), obtener registros SRV, registros de servicio

DNS.resolveNs(dominio, devolución de llamada), obtener NS registros, registros del servidor de nombres de dominio

DNS.resolveCname (dominio, devolución de llamada), obtenga el registro de alias

4. Utilice el método de búsqueda para consultar la dirección IP

Cuando se utiliza el método resolve4 o el método resolve6, debido a que la matriz de valores del parámetro de direcciones en la función de devolución de llamada del valor del parámetro de devolución de llamada almacena todas las direcciones IPv4 o IPv6 obtenidas. Por lo tanto, el módulo DNS proporciona un método de búsqueda para obtener la primera dirección IPv4 o IPv6 descubierta

`DNS.lookup(dominio, [familia], callback(err, direcciones, familia){. ..} )`

El parámetro de dominio es una cadena, que se usa para especificar el nombre de dominio que debe resolverse

El valor del parámetro de familia es un valor entero, que se usa para especificar el tipo de IP dirección que debe obtenerse, el valor del parámetro que se puede especificar es 4 o 6, y el valor del parámetro predeterminado es nulo, lo que significa que se pueden obtener tanto IPv4 como IPv6

El valor del parámetro err del La función de devolución de llamada es el objeto de error que se activa cuando no se puede obtener la dirección. Cuando el nombre de dominio no existe o la consulta falla, el valor del atributo de código del objeto de error es ENOENT.

El valor del parámetro de direcciones es un. cadena, que es la dirección IP obtenida

Cuando el valor del parámetro familiar es 4, expresado como una dirección IPv4, cuando es 6, expresado como una dirección IPv6.

5. Utilice el método inverso para resolver de forma inversa una dirección IP.

En el módulo DNS, utilice el método inverso para resolver de forma inversa una dirección IP en un conjunto de nombres de dominio vinculados al Dirección IP.

`DNS.reverse(ip, callback(err, domains){...})`

El valor del parámetro ip es una cadena utilizada para especificar la dirección IP. que debe resolverse

El error de la función de devolución de llamada es el objeto de error después de que falla la dirección de resolución inversa

El valor del parámetro de dominios es una matriz, que almacena todo el dominio obtenido. nombres

6. Varios códigos de error en el módulo DNS

El valor del parámetro err es el objeto de error que se activa al realizar varias operaciones de análisis o análisis inverso. El valor del atributo de código del objeto de error. se puede utilizar para determinar el código de error que se activa Determinar qué error ocurrió

ENODATA: El servidor DNS devolvió un resultado de consulta sin datos

EFORMERR: El servidor DNS encontró que el cliente. utilizó parámetros de consulta con formato incorrecto al solicitar la consulta

ESERVFAIL: El servidor DNS no pudo realizar la operación de consulta

ENOTFOUND: No se encontró ningún nombre de dominio

ENOTIMP: El El servidor DNS no puede realizar la operación de consulta solicitada por el cliente

EREFUSED: El servidor DNS se negó a realizar la operación de consulta

EBADQUERY: Consulta DNS mal formada

EBADDNAME: El formato del nombre de dominio está mal formado

EBADFAMILY: tipo de dirección IP no admitido

EBADRESP: respuesta DNS mal formada

ECONNREFUSED: no se puede establecer conexión con el servidor DNS

ETIMEOUT: Tiempo de espera para establecer la conexión con el servidor DNS

EEOF: Se alcanzó el final del archivo

EFILE: No se pudo leer el archivo

ENOMEM: No hay suficiente memoria espacio

EDESTRUCTION: el canal ha sido destruido

EBADSTR: error de formato de cadena

EBADFLAGS: indicador de juicio incorrecto especificado

ENONAME: el especificado el nombre de host no está en formato numérico

p>

EBADHINTS: el indicador de solicitud especificado no es válido

ENOTINITIALIZED: el trabajo de inicialización de la biblioteca de clases c-ares no se ha completado

ELOADIPHLPAPI: Se activó un error al cargar iphlpapi.dll

p>

EADDREGETNETWORKPARAMS: Función GetNetworkParams no encontrada

ECANCELLED: Operación de consulta DNS cancelada

7. Uso básico del módulo DNS

Lo anterior es lo que compilé Para todos, espero que sea útil para todos en el futuro.

Artículos relacionados:

Conocimientos básicos y principios de funcionamiento de vue-router

Instancias de envío de datos de formulario de publicación de axios

En el componente vue Cómo utilizar axios