在构筑牵涉截取,浏览统计数据和智能化的插件时,全然非官方对开发者可能将是两个非常大的难题。虽然那儿有很多相同的全权检查和器,但绝大多数检查和器或许都提供更多了稍稍相同且不可信的结论。

本手册将鼓励您顺利完成这四个关键步骤,并提供更多整洁的PHP标识符以精确检验某一全权的非官方性。
全权ip非官方的相同等级是甚么?
菁英(高非官方者)
您的全权全然难以检验,您的真实世界IP将维持暗藏状况。您相连到的伺服器不能晓得您已经开始采用全权。那些是您能找到的最差全权,非官方性和产品质量的水准是前所未有的。
非官方
虽然您的全权IP在相连到非官方全权时仍处在暗藏状况,但这类伺服器和全权检验JAVA将能检验到您已经开始采用全权。虽然那些全权对自由人课堂教学和统计数据分析依然很管用,但是您的原初IP依然有机率曝露。
透明化
您的原初IP将被申明,每一人都将晓得您已经开始采用全权。极其历险,雷西县在试著非官方时防止采用透明化全权。

第1步-创建全权网关
第一步是在伺服器上设置两个网关,该网关将模拟其他任何伺服器将用来确定您是否采用$_SERVER超全局变量的全权。确保能通过公共URL(http://yourdomain.com/gateway.php)访问此PHP文件。由于$_SERVER以数组形式输出,因此您需要进行一些格式化。这是我怎样将gateway.php中的输出格式化为字符串以轻松提取全权非官方性测试器的统计数据的示例:
$output=”;
foreach($_SERVERas$key=>$value){
if(!empty($value)){
$output。=$key。-‘$value。—‘;
}
}
$输出=SUBSTR($输出,0,-3);
die($output);

第2步-相连到伺服器网关并检索结论
设置好网关之后,您就能采用全权相连到网关并检索$_SERVER输出,该输出将显示全权的非官方性。下面是一些简单的PHP标识符,采用cURL访问您的网关URL(例如yourdomain.com/gateway.php)。这个简单的cURLJAVA将检验您全权的协议是HTTP,SOCKS4,SOCKS5还是SOCKS4/5,因此无需事先确定。
注意:确保$url变量设置为网关URL,$proxy变量设置为要测试的全权(IP:PORT格式)。
$types=array(
‘http’,
‘socks4’,
‘socks5’
);
$url=curl_init($url);
curl_setopt($url,CURLOPT_PROXY,$proxy);
foreach($typesas$type){
switch($type){
case‘http’:
curl_setopt($url,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
break;
case‘socks4’:
curl_setopt($url,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS4);
break;
case‘socks5’:
curl_setopt($url,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);
break;
}
curl_setopt($url,CURLOPT_TIMEOUT,10);
curl_setopt($url,CURLOPT_RETURNTRANSFER,1);
$resultsQuery=explode(‘—‘,curl_exec($url));
if(!empty($resultsQuery)){
break;
}
}
$results=array();
foreach($resultsQueryas$result){
if(!empty($result)){
$split=explode(‘–‘,$result);
if(!empty($split[1])){
$results[$split[0]]=$split[1];
}
}
}
curl_close($url);
unset($url);
return$results;
}

关键步骤3-采用网关结论检查和全权非官方
从上面的gatewayResults函数返回伺服器统计数据之后,只需将其传递给下面的函数,它将返回全权非官方等级。
publicfunctioncheckAnonymity($server=array()){
$realIp=$_SERVER[‘REMOTE_ADDR’];
$level=‘transparent’;
if(!in_array($realIp,$server)){
$level=‘anonymous’;
$proxyDetection=array(
‘HTTP_X_REAL_IP’,
‘HTTP_X_FORWARDED_FOR’,
‘HTTP_X_PROXY_ID’,
‘HTTP_VIA’,
‘HTTP_X_FORWARDED_FOR’,
‘HTTP_FORWARDED_FOR’,
‘HTTP_X_FORWARDED’,
‘HTTP_FORWARDED’,
‘HTTP_CLIENT_IP’,
‘HTTP_FORWARDED_FOR_IP’,
‘VIA’,
‘X_FORWARDED_FOR’,
‘FORWARDED_FOR’,
‘X_FORWARDEDFORWARDED’,
‘CLIENT_IP’,
‘FORWARDED_FOR_IP’,
‘HTTP_PROXY_CONNECTION’,
‘HTTP_XROXY_CONNECTION’
);
if(!array_intersect(array_keys($server),$proxyDetection)){
$level=‘elite’;
}
}
return$level;
}