ネットワーク通信において、IPアドレスは非常に重要な情報です。 IP アドレスには IPv4 と IPv6 の 2 種類があり、IPv4 は 32 ビットのアドレス形式を使用し、IPv6 は 128 ビットのアドレス形式を使用します。実際のアプリケーションでは、多くの場合、IP アドレスをネットワーク セグメントに分割して変換する必要があります。この記事では、nodejsを使ってIPv4アドレスをネットワークセグメントに分割・変換する方法を紹介します。
1. IP アドレスの形式
IPv4 アドレスでは、IP アドレスの形式は、ドットで区切られた 8 桁の 2 進数の 4 つのグループで構成されます。 「192.168.1.1」など。 IPv6 アドレスでは、IP アドレスの形式は 16 桁の 2 進数の 8 つのグループで構成され、各グループはコロンで区切られます。たとえば、「2001:0db8:85a3:0000:0000:8a2e:0370:7334」です。
2. IP アドレスのサブネット マスク
IP アドレスのサブネット マスクは、IP アドレスが配置されているネットワーク セグメントを示すために使用され、32 ビットの 2 進数です。このうち、1ビットがネットワーク番号、0ビットがホスト番号を表します。
たとえば、IP アドレス 10.0.0.0 のサブネット マスクが 255.255.255.0 の場合、その IP アドレスが存在するネットワーク セグメントは 10.0.0.0/24 であることを意味します。つまり、ネットワーク番号は 10.0.0、ホスト番号は 3 番目の 8 桁の 2 進数です。さらに、CIDR 表現など、サブネット マスクの表現は他にも多数あります。
3. nodejs の ipaddr モジュール
nodejs の ipaddr モジュールは、IPv4 および IPv6 アドレスを解析して変換するメソッドを提供し、ネットワーク セグメントの分割と変換も簡単に行うことができます。
1. ipaddr モジュールをインストールする
npm install ipaddr コマンドを使用して ipaddr モジュールをインストールします。このモジュールは、プロジェクト フォルダーの下の node_modules フォルダーにあります。
2.ipaddr モジュールの導入
ipaddr モジュールを使用する必要があるファイルで、const ipaddr = require('ipaddr.js') コマンドを使用して ipaddr モジュールを導入します。
3. IP アドレスを ipaddr オブジェクトに変換する
ipaddr.parse() メソッドを使用して、IPv4 および IPv6 アドレスを ipaddr オブジェクトに変換します。
たとえば、「192.168.1.1」を ipaddr オブジェクトに変換するには、次のコードを使用できます:
const ip = ipaddr.parse('192.168.1.1');
4. IP アドレスのタイプを確認します。
ipaddr.IPv4.isValid() メソッドと ipaddr.IPv6.isValid() メソッドを使用して、IP アドレスが IPv4 アドレスであるか IPv6 アドレスであるかを確認します。戻り値は true または false です。
たとえば、「192.168.1.1」が IPv4 アドレスであるかどうかを判断するには、次のコードを使用できます:
const ip = ipaddr.parse('192.168.1.1');
if(ipaddr .IPv4.isValid(ip)) {
console.log('IPv4 アドレス');
} else {
console.log('IPv4 アドレスではありません');
}
5. IP アドレスが指定された IP ネットワーク セグメント内にあるかどうかを確認します。
ipaddr.subnetMatch() メソッドを使用して、IP アドレスが指定された IP ネットワーク セグメント内にあるかどうかを確認します。このメソッドは 2 つのパラメータを受け取ります。最初のパラメータは IP アドレスで、2 番目のパラメータはクエリ対象の IP ネットワーク セグメントであり、「ネットワーク セグメント アドレス/サブネット マスク」の形式で表されます。
たとえば、「192.168.1.1」が IP ネットワーク セグメント「192.168.1.0/24」にあるかどうかを確認するには、次のコードを使用できます:
const ip = ipaddr.parse ('192.168. 1.1');
const subnet = ipaddr.parseCIDR('192.168.1.0/24');
if(ipaddr.subnetMatch(ip, subnet)) {
console.log('指定された IP ネットワーク セグメント内');
} else {
console.log('指定された IP ネットワーク セグメント内にありません');
}
6. IP を変換しますネットワーク セグメントを CIDR 表記に変換するメソッド
ipaddr.subnetMatch() メソッドを使用して、IP ネットワーク セグメントを CIDR 表記に変換します。このメソッドは 2 つのパラメーターを受け取ります。最初のパラメーターは IP ネットワーク セグメント アドレス、2 番目のパラメーターはサブネット マスクです。
たとえば、「192.168.1.0/255.255.255.0」を CIDR 表記「192.168.1.0/24」に変換するには、次のコードを使用できます:
const subnet = ipaddr。 parseCIDR( '192.168.1.0/255.255.255.0');
const cidr = subnet.toString();
console.log(cidr);
4.概要
上記の内容を通じて、IP アドレスとサブネット マスクの基本概念と、nodejs の ipaddr モジュールを使用して IPv4 アドレスをネットワーク セグメントに分割および変換する方法を学習しました。
ネットワークの急速な発展により、IP アドレスとネットワーク セグメントの管理に対する要件がさらに高まっています。この記事が、皆様が IP アドレス変換を理解して適用するのに役立つことを願っています。
以上がnodejsネットワークセグメント変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。