ますます接続が進む世界において、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');
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3