PHP实现VPN检测:非VPN用户显示完整页面,VPN用户显示状态
修改后的PHP脚本
<?php // 手动指定IP地址,如需自动获取用户真实IP可替换为 $_SERVER['REMOTE_ADDR'] $IP_ADDRESS = '127.0.0.1'; $API_KEY = ""; $API_URL = 'https://vpnapi.io/api/' . $IP_ADDRESS . '?key=' . $API_KEY; $response = file_get_contents($API_URL); $response = json_decode($response); // 检测到VPN时输出提示 if(!$response->security->vpn) { echo "使用了VPN"; exit; // 终止脚本,避免输出后续HTML } // 非VPN用户则输出完整HTML页面 ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title></title> </head> <body> <div style="text-align: center; color: rgb(51, 204, 0);"><big style="font-weight: bold;"><big><big><br> 测试成功!!!</big></big></big></div> </body> </html>
关键修改说明
- 移除了原代码中的
header('Content-type: text/plain');,非VPN场景需要输出HTML内容,默认HTTP头会自动设置为text/html,确保HTML能正常渲染。 - 在VPN检测分支添加
exit;语句,确保检测到VPN时直接终止脚本,不会输出后续HTML代码。 - 将所有提示文本改为中文,适配中文使用场景。
- 保留原VPN检测逻辑(按用户描述原脚本检测逻辑正常,未修改判断条件)。
内容的提问来源于stack exchange,提问作者EdgeBT
相关产品推荐
相关产品推荐

