问题描述
我尝试使用此代码检查客户端 IP 是否使用代理 ?
<?PHP
$proxy_ports = array(80,81,8080,443,1080,6588,3128);
foreach($proxy_ports as $test_port) {
if(@fsockopen($_SERVER['REMOTE_ADDR'],$test_port,$errno,$errstr,5)) {
exit("vpn Connect");
}
}
?>
它对我有用,但我想以 Json 编码格式获得 PHP 结果 喜欢 {"vpn" :"ok"} 我的意思是当客户端 ip 与代理连接时,此代码显示结果 vpn connect 我想要像 {"vpn" :"ok"}
这样的 Json 编码格式的结果请有人帮助我我该怎么做。 提前致谢。
解决方法
<?php
$proxy_ports = array(80,81,8080,443,1080,6588,3128);
$payload = ['vpn','ko'];
foreach($proxy_ports as $test_port) {
if(@fsockopen($_SERVER['REMOTE_ADDR'],$test_port,$errno,$errstr,5)) {
$payload['vpn'] = 'ok';
break;
}
}
header('Content-Type: application/json');
echo json_encode($payload);
header('Content-Type: application/json');
会告诉您的浏览器返回内容的类型。
json_encode
会将您的变量转换为 json 有效字符串。