ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptはサブネットマスクコンバータを実装します
インターネットの発展に伴い、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 間で変換できます。プレフィックスの長さ。
<!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 関数が呼び出されて変換されます。
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 ビットにパディングする必要があることに注意してください。これは、後の操作に役立ちます。最後に、変換結果をテキストボックスに表示します。
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 進値に変換し、結果をテキスト ボックスに表示します。
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 サイトの他の関連記事を参照してください。