ホームページ > 記事 > ウェブフロントエンド > JavaScript を使用して VPN を検出する方法
ますます接続が進む世界において、VPN (仮想プライベート ネットワーク) は利点と課題の両方をもたらします。これらはユーザーのプライバシーとセキュリティの維持に役立ちますが、悪意のある目的に使用される可能性もあります。
JavaScript とフェッチ API を使用して Web アプリケーションに VPN 検出を実装する方法について詳しく説明します。任意の API を使用できます。
コードに入る前に、VPN の検出がなぜ重要なのかを見てみましょう:
VPN を検出すると、アプリケーションが意図したとおりに使用されることが保証され、潜在的なリスクからビジネスを保護できます。
JavaScript で VPN を検出するには、IPQuery.io などのサードパーティ サービスを使用します。このサービスは、IP アドレスが VPN、プロキシ、またはその他の匿名化ツールにリンクされているかどうかを含む、IP アドレスに関する詳細情報を提供します。
バニラ JavaScript を使用して物事をシンプルにしましょう。外部ライブラリは必要ありません。組み込みのフェッチ API を使用するだけで、HTTP リクエストを作成し、応答を処理できます。
取得 API を使用して、IP アドレスが VPN に関連付けられているかどうかを確認する方法は次のとおりです。
async function detectVPN(ip) { const response = await fetch(`https://api.ipquery.io/${ip}`); const data = await response.json(); if (data.risk.is_vpn) { console.log(`The IP address ${ip} is associated with a VPN.`); } else { console.log(`The IP address ${ip} is not associated with a VPN.`); } } detectVPN('1.1.1.1');
この例では、detectVPN 関数は GET リクエストを IPQuery API に送信し、IPQuery API は、VPN にリンクされているかどうかを含む、IP アドレスに関する詳細情報を返します。
複数の IP アドレスを一度に確認する必要がありますか? IPQuery は一括検索もサポートしています:
async function detectVPNs(ips) { const response = await fetch(`https://api.ipquery.io/${ips.join(',')}`); const data = await response.json(); data.forEach(ipInfo => { if (ipInfo.risk.is_vpn) { console.log(`The IP address ${ipInfo.ip} is associated with a VPN.`); } else { console.log(`The IP address ${ipInfo.ip} is not associated with a VPN.`); } }); } // Example usage detectVPNs(['1.1.1.1', '2.2.2.2']);
この関数は、IP アドレスの配列を取得し、API にリクエストを送信し、それぞれの VPN 関連付けを確認します。これは、複数のアドレスを同時に処理する効率的な方法です。
ニーズに応じて、JSON、XML、YAML などのさまざまな形式での応答が必要になる場合があります。クエリパラメータを使用して形式を簡単に指定できます:
async function detectVPN(ip, format = 'json') { const response = await fetch(`https://api.ipquery.io/${ip}?format=${format}`); const data = await response.text(); // Use .text() for non-JSON formats console.log(data); } detectVPN('1.1.1.1', 'xml');
以上がJavaScript を使用して VPN を検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。