在我們日益互聯的世界中,VPN(虛擬私人網路)既帶來了優勢,也帶來了挑戰。雖然它們幫助用戶維護隱私和安全,但它們也可能被用於惡意目的。
我們將深入探討如何使用 JavaScript 和 fetch API 在 Web 應用程式中實作 VPN 偵測。您可以使用任何您想要的 API。
在我們進入程式碼之前,讓我們先探討為什麼偵測 VPN 很重要:
偵測 VPN 可確保您的應用程式按預期使用,並有助於保護您的業務免受潛在風險。
為了在 JavaScript 中偵測 VPN,我們將使用 IPQuery.io 等第三方服務。該服務提供有關 IP 位址的詳細信息,包括它們是否連結到 VPN、代理或其他匿名工具。
讓我們用普通 JavaScript 讓事情變得簡單。不需要外部程式庫——只需內建的 fetch API,它可以讓我們發出 HTTP 請求並處理回應。
以下是如何使用 fetch 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 函數向 IPQuery API 發送 GET 請求,該請求返回有關 IP 位址的詳細信息,包括它是否連結到 VPN。
需要一次檢查多個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 發送請求,並檢查每個 IP 位址的 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中文網其他相關文章!