Maison  >  Article  >  interface Web  >  javascript implémente un convertisseur de masque de sous-réseau

javascript implémente un convertisseur de masque de sous-réseau

PHPz
PHPzoriginal
2023-05-16 11:53:37923parcourir

Avec le développement d'Internet, les adresses IP sont largement utilisées dans divers domaines. Cependant, la classification des adresses IP a apporté une certaine confusion aux administrateurs réseau, notamment dans la division des masques de sous-réseau. Un masque de sous-réseau est une partie d'une adresse IP qui détermine la partie réseau et la partie hôte à laquelle appartient une adresse IP. Dans cet article, nous partagerons un convertisseur de masque de sous-réseau implémenté en JavaScript pour vous aider à mieux comprendre le concept et l'application des masques de sous-réseau.

Le concept de masque de sous-réseau

Dans les adresses IP, les masques de sous-réseau sont utilisés pour diviser les adresses réseau et les adresses d'hôtes. Il se compose de 32 bits binaires avec 1 pour la partie réseau et 0 pour la partie hôte. Le but du masque de sous-réseau est de diviser une adresse IP en deux parties : l'adresse réseau et l'adresse hôte. En prenant IPv4 comme exemple, le masque de sous-réseau est généralement exprimé en termes de « longueur de préfixe ».

Par exemple, le masque de sous-réseau 255.255.255.0 peut être écrit sous la forme "/24", où "24" représente la longueur du préfixe. Cela signifie que les 24 premiers bits sont l'adresse réseau et les 8 derniers bits sont l'adresse de l'hôte. Dans un sous-réseau, une adresse IP spécifique peut être exprimée sous la forme « adresse réseau + adresse hôte ».

Application du masque de sous-réseau

La fonction principale du masque de sous-réseau est de diviser une adresse IP en une adresse réseau et une adresse hôte, réalisant ainsi la division et la gestion du réseau. Habituellement, tous les hôtes d'un réseau ont la même adresse réseau et différentes adresses d'hôte sont utilisées pour distinguer les différents hôtes. Si le masque de sous-réseau est mal défini, les hôtes entre les sous-réseaux ne pourront pas communiquer entre eux.

Par conséquent, afin d'assurer une communication réseau normale, l'administrateur réseau doit définir correctement le masque de sous-réseau. Il existe trois manières de diviser les masques de sous-réseau : Classe A, Classe B et Classe C. Parmi eux, le masque de sous-réseau de classe A convient aux réseaux à grande échelle, la classe B convient aux réseaux de taille moyenne et la classe C convient aux réseaux à petite échelle.

JavaScript pour implémenter un convertisseur de masque de sous-réseau

Ci-dessous, nous présenterons comment utiliser JavaScript pour implémenter un convertisseur de masque de sous-réseau. Cet outil peut changer le masque de sous-réseau de Convertir entre décimal. , longueurs de préfixes binaires et CIDR.

  1. Code HTML pour le convertisseur de masque de sous-réseau
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>子网掩码转换器</title>
</head>
<body>
  <h1>子网掩码转换器</h1>
  <form>
    <p>
      子网掩码:<input type="text" id="subnetmask" size="30">
    </p>
    <p>
      <input type="button" value="十进制转换为二进制" onClick="decimalToBinary()">
      <input type="button" value="二进制转换为十进制" onClick="binaryToDecimal()">
      <input type="button" value="CIDR前缀长度转换为子网掩码" onClick="cidrToSubnetmask()">
    </p>
    <p>
      转换结果:<input type="text" id="result" size="30">
    </p>
  </form>
 
  <script src="subnetmask.js"></script>
</body>
</html>

Il s'agit d'une interface HTML simple qui contient une zone de texte pour saisir le masque de sous-réseau, trois boutons et une zone de texte affichant les résultats de la conversion. Lorsque vous cliquez sur le bouton, la fonction JavaScript correspondante sera appelée pour la conversion.

  1. Convertir le décimal en binaire
function decimalToBinary() {
  var subnetmask = document.getElementById('subnetmask').value.trim();
  var result = '';
  if (subnetmask.length === 0 || isNaN(subnetmask)) {
    result = '请输入正确的十进制数值';
  } else {
    var binary = parseInt(subnetmask).toString(2);
    result = pad(binary, 32);
  }
  document.getElementById('result').value = result;
}

Il s'agit d'une fonction qui convertit les valeurs décimales en binaire 32 bits. Il lit d'abord la valeur décimale saisie dans la zone de texte, puis la convertit en binaire à l'aide de la méthode toString(). Veuillez noter qu'une fois la conversion terminée, vous devez utiliser la fonction pad() pour la compléter à 32 bits, ce qui sera utile pour les opérations ultérieures. Enfin, affichez les résultats de la conversion dans la zone de texte.

  1. Convertir binaire en décimal
function binaryToDecimal() {
  var subnetmask = document.getElementById('subnetmask').value.trim();
  var result = '';
  if (subnetmask.length === 0) {
    result = '请输入正确的二进制数值';
  } else if (!/^[01]{32}$/.test(subnetmask)) {
    result = '请输入32位二进制数值';
  } else {
    var decimal = parseInt(subnetmask, 2).toString();
    result = decimal;
  }
  document.getElementById('result').value = result;
}

Il s'agit d'une fonction qui convertit une valeur binaire de 32 bits en valeur décimale. Il vérifie d'abord si l'entrée est correcte, c'est-à-dire si la longueur est une valeur binaire de 32 bits et ne contient que des 0 et des 1. Si la saisie est incorrecte, un message d'erreur sera renvoyé. Sinon, utilisez la méthode parseInt() pour convertir la valeur binaire en valeur décimale et afficher le résultat dans la zone de texte.

  1. Convertir la longueur du préfixe CIDR en masque de sous-réseau
function cidrToSubnetmask() {
  var subnetmask = document.getElementById('subnetmask').value.trim();
  var result = '';
  if (subnetmask.length === 0 || isNaN(subnetmask)) {
    result = '请输入正确的CIDR前缀长度';
  } else if (subnetmask < 0 || subnetmask > 32) {
    result = 'CIDR前缀长度必须在0到32之间';
  } else {
    var binary = '1'.repeat(subnetmask) + '0'.repeat(32 - subnetmask);
    var subnetmask = binary.match(/.{1,8}/g).map(function(s) { return parseInt(s, 2); }).join('.');
    result = subnetmask;
  }
  document.getElementById('result').value = result;
}

Il s'agit d'une fonction qui convertit la longueur du préfixe CIDR en masque de sous-réseau. Il vérifie d'abord si la saisie est correcte, c'est-à-dire si la longueur est une valeur décimale et dans une plage raisonnable. Si la saisie est incorrecte, un message d'erreur sera renvoyé. Sinon, convertissez la longueur du préfixe en une valeur binaire de 32 bits et utilisez la méthode match() pour la diviser en quatre valeurs binaires de 8 bits. Ensuite, utilisez la méthode map() pour convertir chaque valeur binaire en valeur décimale et utilisez la méthode join() pour la joindre en 4 segments. Enfin, affichez les résultats de la conversion dans la zone de texte.

Résumé

Dans cet article, nous avons présenté le concept et l'application du masquage de sous-réseau, et partagé un convertisseur de masque de sous-réseau implémenté en JavaScript. Cet outil peut aider les administrateurs réseau à mieux comprendre les concepts et les applications des masques de sous-réseau et à résoudre efficacement les problèmes de réseau causés par des paramètres de masque de sous-réseau incorrects. Dans la future gestion du réseau, nous pensons que cet outil vous sera certainement utile.

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