2011-03-26 66 views
0

欢迎,使用PHP脚本测试用户HTTP代理

我正在编写应用程序什么将允许我尝试检测何种类型的HTTP代理用户已安装。

脚本中调用远程服务器添加参数http://xxxx.php?my_ip=real_IP

这里是我的应用程序:

<?php 

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 


$real_ip=$_GET['my_ip']; 


$ip1=$_SERVER['HTTP_X_FORWARDED_FOR']; 
$ip2=$_SERVER['HTTP_X_FORWARDED']; 
$ip3=$_SERVER['HTTP_FORWARDED_FOR']; 
$ip4=$_SERVER['HTTP_CLIENT_IP']; 
$ip5=$_SERVER['HTTP_VIA']; 

$ip6=$_SERVER['REMOTE_ADDR']; 

$ip_array[1]=$ip1; 
$ip_array[2]=$ip2; 
$ip_array[3]=$ip3; 
$ip_array[4]=$ip4; 
$ip_array[5]=$ip5; 


if($ip6==$real_ip) 
{ 
    echo "You are not using proxy."; 
} 
else 
{ 

if(in_array($real_ip, $ip_array)) 
{ 
    echo "You are using transparent proxy with one releave your ip."; 
} 
else 
{ 

    if($_SERVER['HTTP_X_FORWARDED_FOR'] 
    || $_SERVER['HTTP_X_FORWARDED'] 
    || $_SERVER['HTTP_FORWARDED_FOR'] 
    || $_SERVER['HTTP_CLIENT_IP'] 
    || $_SERVER['HTTP_VIA']) 
    { 
    echo "You are using anonymous proxy with one protect Your IP but inform www servers about using proxy";  
    } 
    else 
    { 
    echo "You are using elite proxy, with one hide your IP and don't inform www servers about using proxy";  
    } 


} 
} 




$table=<<<table 

<p>Ip HTTP_X_FORWARDED_FOR FOR : $ip1</p> 
<p>Ip HTTP_X_FORWARDED : $ip2</p> 
<p>Ip HTTP_FORWARDED_FOR FOR : $ip3</p> 
<p>Ip HTTP_CLIENT_IP FOR : $ip4</p> 
<p>Ip HTTP_VIA FOR : $ip5</p> 
<p>Ip remote addr : $ip6</p> 

table; 
echo $table; 

?> 

我运行一些测试和应用程序看起来工作得很好。

如果您有任何提示,请告诉我。

我的意思是我想知道我不会错过重要的事情。

问候

回答

0

另一种方式的一些主要参与者(贝宝,易趣,具有高安全性等网站)找到代理是看你的IP的主机名与gethostbyaddr(),它可以揭示可能的来源做代理例如server.squid.com(非常明显的例子来向你展示我的意思!)