Maison >interface Web >Questions et réponses frontales >Comment obtenir l'adresse IP dynamique du routeur dans nodejs

Comment obtenir l'adresse IP dynamique du routeur dans nodejs

王林
王林original
2023-05-12 10:29:36975parcourir

Lors de la programmation réseau, obtenir l'adresse IP du routeur est un besoin courant. Que vous développiez des applications Web ou travailliez sur la sécurité du réseau, il est très important d'obtenir l'adresse IP dynamique de votre routeur. Comment obtenir l'IP dynamique du routeur dans Node.js ? Cet article présentera en détail la méthode d'obtention de l'IP dynamique du routeur dans Node.js.

1. Comprendre la notion d'adresse IP dynamique

Avant de comprendre comment Node.js obtient l'IP dynamique du routeur, il faut d'abord comprendre la notion d'adresse IP dynamique . Une adresse IP dynamique fait référence à une adresse IP qui change constamment en raison des changements dans les conditions du réseau ou des besoins de l'utilisateur, c'est-à-dire qu'à chaque fois que l'utilisateur redémarre ou que la passerelle se reconnecte au service du FAI (Fournisseur d'Accès Internet), l'adresse IP attribuée. par le routeur Il y aura des changements. Une adresse IP statique fait référence à une adresse IP résidente attribuée à une machine et ne changera pas en raison des changements dans les conditions du réseau ou des besoins des utilisateurs.

Dans un LAN, l'adresse IP dynamique du routeur est généralement automatiquement attribuée par le serveur DHCP. Par conséquent, la programmation Node.js est nécessaire pour obtenir l’adresse IP dynamique du routeur.

2. Utilisez Node.js pour obtenir l'adresse IP dynamique du routeur

1 Obtenez l'adresse IP publique du routeur

Dans Node.js, Notre méthode courante consiste à envoyer une requête au serveur STUN pour obtenir l'adresse IP publique du routeur. Le nom complet du serveur STUN est Simple Traversal of UDP through NATs (NAT penetration). Il s'agit d'un protocole réseau conçu pour résoudre le problème des limitations des périphériques NAT. Il peut être analysé par le serveur pour déterminer le réseau sur lequel se trouve le client et. d'autres informations, fournissant au client Fournit un ensemble commun d'informations réseau afin que les clients puissent construire des paquets UDP qui traversent la passerelle NAT.

Le code est le suivant :

const stun = require('stun');
const { address } = stun.request('stun.l.google.com:19302');
console.log(address);

Dans le code ci-dessus, la méthode stun.request enverra une requête au serveur STUN spécifié et renverra l'adresse IP publique obtenue de le routeur. Dans la sortie de la console, vous pouvez voir l'adresse IP obtenue.

2. Obtenez l'adresse IP interne du routeur

Dans Node.js, vous pouvez utiliser l'API d'informations d'interface réseau pour obtenir l'adresse IP interne du routeur. L'API d'informations sur l'interface réseau contient principalement des informations sur l'interface réseau, notamment l'adresse IP, le masque de sous-réseau, etc. Nous pouvons parcourir ces interfaces réseau, trouver l’interface réseau connectée à l’intérieur du routeur et obtenir son adresse IP.

Le code est le suivant :

const os = require('os');
const interfaces = os.networkInterfaces();
let ip = '';
Object.keys(interfaces).forEach(key => {
  interfaces[key].forEach(item => {
    if (item.family === 'IPv4' && !item.internal) {
      ip = item.address;
    }
  });
});
console.log(ip);

Dans le code ci-dessus, on obtient toutes les informations d'interface réseau de la machine en appelant la méthode networkInterfaces d'os. Parcourez ensuite les informations d'interface réseau pour trouver l'interface connectée au routeur et obtenir l'adresse IP de l'interface.

3. Résumé

Cet article présente principalement la méthode de Node.js pour obtenir l'adresse IP dynamique du routeur, impliquant deux méthodes d'obtention de l'adresse IP publique et de l'IP intranet du routeur adresse. . Grâce à l'introduction de cet article, j'espère qu'il pourra aider les lecteurs à mieux comprendre la méthode d'obtention de l'adresse IP du routeur et faciliter l'utilisation de la technologie de programmation Node.js dans des applications pratiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn