ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptはサブネットマスクコンバータを実装します

JavaScriptはサブネットマスクコンバータを実装します

PHPz
PHPzオリジナル
2023-05-16 11:53:371073ブラウズ

インターネットの発展に伴い、IP アドレスはさまざまな分野で広く使用されていますが、IP アドレスの分類は、特にサブネット マスクの分割において、ネットワーク管理者に一定の混乱をもたらしています。サブネット マスクは、IP アドレスが属するネットワーク部分とホスト部分を決定する IP アドレスの一部です。この記事では、サブネット マスクの概念とアプリケーションをより深く理解できるように、JavaScript で実装されたサブネット マスク コンバーターを紹介します。

サブネット マスクの概念

IP アドレスでは、サブネット マスクはネットワーク アドレスとホスト アドレスを分けるために使用されます。これは、ネットワーク部分が 1、ホスト部分が 0 の 32 ビット バイナリで構成されます。サブネット マスクの目的は、IP アドレスをネットワーク アドレスとホスト アドレスの 2 つの部分に分割することです。 IPv4 を例に挙げると、サブネット マスクは通常「プレフィックス長」という単位で表されます。

たとえば、サブネット マスク 255.255.255.0 は「/24」と書くことができます。「24」はプレフィックス長を表します。これは、最初の 24 ビットがネットワーク アドレスで、最後の 8 ビットがホスト アドレスであることを意味します。サブネットでは、特定の IP アドレスを「ネットワーク アドレス ホスト アドレス」の形式で表現できます。

サブネットマスクの適用

サブネットマスクの主な機能は、IPアドレスをネットワークアドレスとホストアドレスに分割し、ネットワークの分割管理を実現することです。通常、ネットワーク内のすべてのホストは同じネットワーク アドレスを持ち、異なるホストを区別するために異なるホスト アドレスが使用されます。サブネット マスクが正しく設定されていない場合、サブネット間のホストは相互に通信できなくなります。

したがって、正常なネットワーク通信を確保するには、ネットワーク管理者はサブネット マスクを正しく設定する必要があります。サブネット マスクを分割するには、クラス A、クラス B、クラス C の 3 つの方法があります。このうち、クラス A のサブネット マスクは大規模ネットワークに適しており、クラス B は中規模ネットワークに適しており、クラス C は小規模ネットワークに適しています。

サブネット マスク コンバータを実装する JavaScript

以下では、JavaScript を使用してサブネット マスク コンバータを実装する方法を紹介しますこのツールは、サブネット マスクを 10 進数、2 進数、および CIDR 間で変換できます。プレフィックスの長さ。

  1. サブネット マスク コンバーターの HTML コード
<!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>

これはシンプルな HTML インターフェイスで、サブネット マスクを入力するためのテキスト ボックス、3 つのボタン、および次の内容を示すテキスト ボックスが含まれています。変換結果。ボタンをクリックすると、対応する JavaScript 関数が呼び出されて変換されます。

  1. 10 進数を 2 進数に変換
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;
}

これは、10 進数を 32 ビットのバイナリに変換する関数です。まず、入力された 10 進値をテキスト ボックスから読み取り、次に toString() メソッドを使用してバイナリに変換します。変換が完了したら、pad() 関数を使用して 32 ビットにパディングする必要があることに注意してください。これは、後の操作に役立ちます。最後に、変換結果をテキストボックスに表示します。

  1. バイナリを 10 進数に変換
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;
}

これは、32 ビットのバイナリ値を 10 進値に変換する関数です。まず、入力が正しいかどうか、つまり長さが 32 ビットのバイナリ値であり、0 と 1 のみが含まれているかどうかをチェックします。入力が間違っている場合は、エラーメッセージが返されます。それ以外の場合は、parseInt() メソッドを使用してバイナリ値を 10 進値に変換し、結果をテキスト ボックスに表示します。

  1. Convert CIDR prefix length to subnet Mask
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;
}

これは、CIDR プレフィックス長をサブネット マスクに変換する関数です。まず、入力が正しいかどうか、つまり長さが 10 進数値であり、妥当な範囲内であるかどうかをチェックします。入力が間違っている場合は、エラーメッセージが返されます。それ以外の場合は、プレフィックス長を 32 ビット バイナリ値に変換し、match() メソッドを使用して 4 つの 8 ビット バイナリ値に分割します。次に、map() メソッドを使用して各バイナリ値を 10 進値に変換し、join() メソッドを使用してそれを 4 つのセグメントに結合します。最後に、変換結果をテキストボックスに表示します。

概要

この記事では、サブネット マスクの概念と応用を紹介し、JavaScript で実装されたサブネット マスク コンバーターを共有しました。このツールは、ネットワーク管理者がサブネット マスクの概念と応用をより深く理解し、不適切なサブネット マスク設定によって引き起こされるネットワークの問題を効果的に解決するのに役立ちます。今後のネットワーク管理において、このツールが必ずお役に立てると信じております。

以上がJavaScriptはサブネットマスクコンバータを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。