Node.js - Module DNS

Node.js dnsLe module est utilisé pour effectuer une recherche DNS réelle ainsi que pour utiliser les fonctionnalités de résolution de nom du système d'exploitation sous-jacent. Ce module fournit un wrapper de réseau asynchrone et peut être importé à l'aide de la syntaxe suivante.

var dns = require("dns")

Méthodes

N ° Sr. Méthode et description
1

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

Résout un nom d'hôte (par exemple "google.com") dans le premier enregistrement A (IPv4) ou AAAA (IPv6) trouvé. les options peuvent être un objet ou un entier. Si les options ne sont pas fournies, les adresses IP v4 et v6 sont toutes deux valides. Si options est un entier, alors il doit être 4 ou 6.

2

dns.lookupService(address, port, callback)

Résout l'adresse et le port donnés en un nom d'hôte et un service à l'aide de getnameinfo.

3

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

Résout un nom d'hôte (par exemple «google.com») dans un tableau des types d'enregistrement spécifiés par rrtype.

4

dns.resolve4(hostname, callback)

Identique à dns.resolve (), mais uniquement pour les requêtes IPv4 (enregistrements A). adresses est un tableau d'adresses IPv4 (par exemple ['74 .125.79.104 ', '74 .125.79.105', '74 .125.79.106 ']).

5

dns.resolve6(hostname, callback)

Identique à dns.resolve4 () sauf pour les requêtes IPv6 (une requête AAAA).

6

dns.resolveMx(hostname, callback)

Identique à dns.resolve (), mais uniquement pour les requêtes d'échange de courrier (enregistrements MX).

sept

dns.resolveTxt(hostname, callback)

Identique à dns.resolve (), mais uniquement pour les requêtes de texte (enregistrements TXT). adresses est un tableau 2D des enregistrements de texte disponibles pour le nom d'hôte (par exemple, [['v = spf1 ip4: 0.0.0.0', '~ all']]). Chaque sous-tableau contient des morceaux TXT d'un enregistrement. Selon le cas d'utilisation, ils peuvent être soit réunis, soit traités séparément.

8

dns.resolveSrv(hostname, callback)

Identique à dns.resolve (), mais uniquement pour les enregistrements de service (enregistrements SRV). adresses est un tableau des enregistrements SRV disponibles pour le nom d'hôte. Les propriétés des enregistrements SRV sont la priorité, le poids, le port et le nom (par exemple, [{'priority': 10, 'weight': 5, 'port': 21223, 'name': 'service.example.com'},. ..]).

9

dns.resolveSoa(hostname, callback)

Identique à dns.resolve (), mais uniquement pour les requêtes de début de notice d'autorité (enregistrement SOA).

dix

dns.resolveNs(hostname, callback)

Identique à dns.resolve (), mais uniquement pour les enregistrements de serveur de noms (enregistrements NS). adresses est un tableau des enregistrements de serveur de noms disponibles pour le nom d'hôte (par exemple, ['ns1.example.com', 'ns2.example.com']).

11

dns.resolveCname(hostname, callback)

Identique à dns.resolve (), mais uniquement pour les enregistrements de noms canoniques (enregistrements CNAME). adresses est un tableau des enregistrements de noms canoniques disponibles pour le nom d'hôte (par exemple, ['bar.example.com']).

12

dns.reverse(ip, callback)

Reverse résout une adresse IP en un tableau de noms d'hôtes.

13

dns.getServers()

Renvoie un tableau d'adresses IP sous forme de chaînes actuellement utilisées pour la résolution.

14

dns.setServers(servers)

Étant donné un tableau d'adresses IP sous forme de chaînes, définissez-les comme serveurs à utiliser pour la résolution.

rrtypes

Voici la liste des rrtypes valides utilisés par la méthode dns.resolve () -

  • A - Adresses IPV4, par défaut

  • AAAA - Adresses IPV6

  • MX - registres d'échange de courrier

  • TXT - enregistrements de texte

  • SRV - Enregistrements SRV

  • PTR - utilisé pour les recherches IP inversées

  • NS - enregistrements du serveur de noms

  • CNAME - enregistrements de noms canoniques

  • SOA - début de la notice d'autorité

Codes d'erreur

Chaque requête DNS peut renvoyer l'un des codes d'erreur suivants -

  • dns.NODATA - Le serveur DNS a renvoyé la réponse sans données.

  • dns.FORMERR - La requête de réclamation du serveur DNS était mal formatée.

  • dns.SERVFAIL - Le serveur DNS a renvoyé une panne générale.

  • dns.NOTFOUND - Nom de domaine introuvable.

  • dns.NOTIMP - Le serveur DNS n'implémente pas l'opération demandée.

  • dns.REFUSED - Le serveur DNS a refusé la requête.

  • dns.BADQUERY - Requête DNS mal formatée.

  • dns.BADNAME - Nom d'hôte mal formaté.

  • dns.BADFAMILY - Famille d'adresses non prise en charge.

  • dns.BADRESP - Réponse DNS mal formatée.

  • dns.CONNREFUSED - Impossible de contacter les serveurs DNS.

  • dns.TIMEOUT - Timeout lors de la communication avec les serveurs DNS.

  • dns.EOF - Fin de fichier.

  • dns.FILE - Erreur de lecture du fichier.

  • dns.NOMEM - Manque de mémoire.

  • dns.DESTRUCTION - La chaîne est en cours de destruction.

  • dns.BADSTR - Chaîne mal formatée.

  • dns.BADFLAGS - Indicateurs illégaux spécifiés.

  • dns.NONAME - Le nom d'hôte donné n'est pas numérique.

  • dns.BADHINTS - Indicateurs d'indication illégaux spécifiés.

  • dns.NOTINITIALIZED - L'initialisation de la bibliothèque c-ares n'est pas encore effectuée.

  • dns.LOADIPHLPAPI - Erreur lors du chargement de iphlpapi.dll.

  • dns.ADDRGETNETWORKPARAMS - Impossible de trouver la fonction GetNetworkParams.

  • dns.CANCELLED - Requête DNS annulée.

Exemple

Créez un fichier js nommé main.js avec le code suivant -

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));
   });  
});

Maintenant, exécutez le main.js pour voir le résultat -

$ node main.js

Vérifiez la sortie.

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