ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptでIPにアクセスできるかどうかを確認する方法

JavaScriptでIPにアクセスできるかどうかを確認する方法

WBOY
WBOYオリジナル
2023-05-21 09:40:081367ブラウズ

JavaScript は、Web サイト上で高度にインタラクティブなアプリケーションを迅速に開発するのに役立つ、広く使用されているプログラミング言語です。 Web サイトの開発では、IP アドレスの検証は一般的なタスクです。JavaScript を使用して IP アドレスを検証する方法を見てみましょう。

  1. IPv4 アドレスの検証

IPv4 は一般的な IP アドレス タイプで、ピリオドで区切られた 4 つの数字で構成され、各数字の範囲は 0 ~ 255 です。 JavaScript を使用すると、正規表現を通じて IPv4 アドレスの正当性を検証できます。

以下は、IPv4 アドレスの検証に使用できるコード例です。

function validateIPv4Address(ipAddress) {
    var ipv4Pattern = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
    return ipv4Pattern.test(ipAddress);
}

// 示例
console.log(validateIPv4Address('192.168.0.1')); // true
console.log(validateIPv4Address('')); // false
console.log(validateIPv4Address('256.168.0.1')); // false

正規表現を使用して IP アドレスの形式と一致し、一致した場合は true を返します。それ以外の場合は false を返します。正規表現では、複数の一致パターンを示すためにパイプ文字 (|) を使用し、0 または 1 つの記号が存在する可能性があることを示すために疑問符 (?) を使用します。

  1. IPv6 アドレスの検証

IPv6 は、コロンで区切られた 8 桁の 16 進数で構成される新しい IP アドレス タイプです。 IPv6 アドレスは IPv4 アドレスよりも複雑であるため、IPv6 アドレスの正当性を検証するには、より複雑な正規表現を使用する必要があります。

以下は、IPv6 アドレスの検証に使用できるコード例です。

function validateIPv6Address(ipAddress) {
    var ipv6Pattern = /^[a-fA-F0-9]{1,4}(:[a-fA-F0-9]{1,4}){7}$/;
    return ipv6Pattern.test(ipAddress);
}

// 示例
console.log(validateIPv6Address('2001:0db8:85a3:0000:0000:8a2e:0370:7334')); // true
console.log(validateIPv6Address('')); // false
console.log(validateIPv6Address('2001::7334')); // false

上の例では、正規表現を使用して IPv6 アドレスを照合しました。文字クラス [a-fA-F0-9] は、許可される文字を表すために正規表現で使用されます。 16 進数を区切るためにコロン (:) を使用し、シンボルの長さの制限を示すために中括弧 ({}) を使用しました。

  1. IP が特定の IP セグメント内にあるかどうかを確認する

IP アドレスが特定の IP セグメント内にあるかどうかを確認する必要がある場合があります。たとえば、特定の地域からの IP アドレスによる Web サイトへのアクセスを制限する必要がある場合があります。以下は、IP が特定の IP セグメント内にあるかどうかを判断するために使用できるサンプル コードです。

function validateIpInRange(ipAddress, ipRange) {
    var startIp = ipRange.split('-')[0];
    var endIp = ipRange.split('-')[1];

    function convertIpToNumber(ipAddress) {
        return ipAddress.split('.').reduce(function (result, octet) {
            return (result << 8) + parseInt(octet, 10);
        }, 0) >>> 0;
    }

    var startIpNumber = convertIpToNumber(startIp);
    var endIpNumber = convertIpToNumber(endIp);
    var ipNumber = convertIpToNumber(ipAddress);

    return ipNumber >= startIpNumber && ipNumber <= endIpNumber;
}

// 示例
console.log(validateIpInRange('192.168.0.1', '192.168.0.0-192.168.0.255')); // true
console.log(validateIpInRange('192.168.1.1', '192.168.0.0-192.168.0.255')); // false

上の例では、IP アドレス文字列を次のように変換するために使用される関数 ConvertIpToNumber を定義しました。 an 32 ビット符号なし整数型の数値。 IP アドレス文字列を数値に変換すると、2 つの IP アドレスの相対的なサイズを比較できます。

関数では、ターゲット IP アドレス、開始 IP アドレス、終了 IP アドレスを同時に解析します。これらの解析された数値を使用して、ターゲット IP アドレスが指定された IP 範囲内にあるかどうかを判断できます。

以上がJavaScriptでIPにアクセスできるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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