JavaScriptでIPにアクセスできるかどうかを確認する方法
JavaScript は、Web サイト上で高度にインタラクティブなアプリケーションを迅速に開発するのに役立つ、広く使用されているプログラミング言語です。 Web サイトの開発では、IP アドレスの検証は一般的なタスクです。JavaScript を使用して IP アドレスを検証する方法を見てみましょう。
- 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 つの記号が存在する可能性があることを示すために疑問符 (?) を使用します。
- 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 進数を区切るためにコロン (:) を使用し、シンボルの長さの制限を示すために中括弧 ({}) を使用しました。
- 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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

この記事では、&lt; route&gt;を使用して、Reactルーターのルートの定義について説明します。パス、コンポーネント、レンダリング、子供、正確、ネストされたルーティングなどの小道具をカバーするコンポーネント。

ReactはJSXとHTMLを組み合わせてユーザーエクスペリエンスを向上させます。 1)JSXはHTMLを埋め込み、開発をより直感的にします。 2)仮想DOMメカニズムは、パフォーマンスを最適化し、DOM操作を削減します。 3)保守性を向上させるコンポーネントベースの管理UI。 4)国家管理とイベント処理は、インタラクティブ性を高めます。

VUE 2の反応性システムは、直接配列インデックス設定、長さの変更、およびオブジェクトプロパティの追加/削除と闘っています。開発者は、Vueの突然変異法とVue.set()を使用して、反応性を確保することができます。
