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

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

May 16, 2023 am 11:53 AM

インターネットの発展に伴い、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

UseEffectとは何ですか?副作用を実行するためにどのように使用しますか? UseEffectとは何ですか?副作用を実行するためにどのように使用しますか? Mar 19, 2025 pm 03:58 PM

この記事では、functionコンポーネントでのデータフェッチやDOM操作などの副作用を管理するためのフックであるReactの使用Effectについて説明します。メモリリークなどの問題を防ぐための使用、一般的な副作用、およびクリーンアップについて説明します。

React和解アルゴリズムはどのように機能しますか? React和解アルゴリズムはどのように機能しますか? Mar 18, 2025 pm 01:58 PM

この記事では、Virtual DOMツリーを比較してDOMを効率的に更新するReactの調整アルゴリズムについて説明します。パフォーマンスの利点、最適化技術、ユーザーエクスペリエンスへの影響について説明します。

JavaScriptの高次関数とは何ですか?また、より簡潔で再利用可能なコードを書くためにどのように使用できますか? JavaScriptの高次関数とは何ですか?また、より簡潔で再利用可能なコードを書くためにどのように使用できますか? Mar 18, 2025 pm 01:44 PM

JavaScriptの高次関数は、抽象化、共通パターン、および最適化技術を通じて、コードの簡潔さ、再利用性、モジュール性、およびパフォーマンスを強化します。

JavaScriptでカリーはどのように機能し、その利点は何ですか? JavaScriptでカリーはどのように機能し、その利点は何ですか? Mar 18, 2025 pm 01:45 PM

この記事では、JavaScriptのカレーについて説明します。これは、マルチアーグメント関数を単一argument関数シーケンスに変換する手法です。 Curryingの実装、部分的なアプリケーションなどの利点、実用的な用途、コード読み取りの強化を調査します

connect()を使用して、ReactコンポーネントをReduxストアにどのように接続しますか? connect()を使用して、ReactコンポーネントをReduxストアにどのように接続しますか? Mar 21, 2025 pm 06:23 PM

記事では、Connect()、MapStateToprops、MapDispatchToprops、およびパフォーマンスへの影響を説明するReduxストアに反応コンポーネントをReduxストアに接続します。

usecontextとは何ですか?コンポーネント間で状態を共有するためにどのように使用しますか? usecontextとは何ですか?コンポーネント間で状態を共有するためにどのように使用しますか? Mar 19, 2025 pm 03:59 PM

この記事では、ReactのUseContextを説明しています。これにより、小道具掘削を避けることで国家管理を簡素化します。再レンダーの削減により、集中状態やパフォーマンスの改善などの利点について説明します。

イベントハンドラーのデフォルトの動作をどのように防止しますか? イベントハンドラーのデフォルトの動作をどのように防止しますか? Mar 19, 2025 pm 04:10 PM

記事では、PreventDefault()メソッドを使用して、イベントハンドラーのデフォルト動作の防止、ユーザーエクスペリエンスの強化などの利点、およびアクセシビリティの懸念などの潜在的な問題について説明します。

制御されたコンポーネントと制御されていないコンポーネントの利点と短所は何ですか? 制御されたコンポーネントと制御されていないコンポーネントの利点と短所は何ですか? Mar 19, 2025 pm 04:16 PM

この記事では、予測可能性、パフォーマンス、ユースケースなどの側面に焦点を当てた、Reactの制御されていないコンポーネントと制御されていないコンポーネントの利点と欠点について説明します。それらを選択する際に考慮することを要因についてアドバイスします。

See all articles