wxinlin 发表于 2009 年 3 月 2 日 21:54:13

问下 如何检测代理的匿名性?


123cha.com 样的

function get_real_ip(){
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return $ip;
}
function is_ip($str) {
    $ip = explode(".", $str);
    if (count($ip)<4 || count($ip)>4) return 0;
    foreach($ip as $ip_addr) {
      if ( !is_numeric($ip_addr) ) return 0;
      if ( $ip_addr<0 || $ip_addr>255 ) return 0;
    }
    return 1;
}
if($_POST['ip']){
$ip=$_POST['ip'];
preg_match('/((\w|-)+\.)+{2,4}/i',$ip) ? $ip=gethostbyname($ip) : $ip;
if(is_ip($ip)){
$ifErr=$QQWry->QQWry($ip);
echo "您查询的IP:&nbsp; ;".$ip."<br>IP详细地址:&nbsp; ;".$QQWry->Country.$QQWry->Local."<br/>";
}else
{
echo "您输入的好像火星IP,本站不能查询.";
}
}else{
$ip=get_real_ip();
if (($_SERVER["HTTP_CLIENT_IP"]) or ($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ifErr=$QQWry->QQWry($ip);
echo "++ 您的ip:&nbsp; ;[".$ip."] 来自:".$QQWry->Country.$QQWry->Local."&nbsp; ;&nbsp; ;++<br/>";
$ip=$_SERVER['REMOTE_ADDR'];
$ifErr=$QQWry->QQWry($ip);
echo "<font color=\"red\">您使用透明代理服务器</font>&nbsp; ;<font color=\"blue\">".$ip."[".$QQWry->Country.$QQWry->Local."]</font>&nbsp; ;<font color=\"red\">访问本站</font>";
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
$ifErr=$QQWry->QQWry($ip);
echo "++ 您的ip:&nbsp; ;[".$ip."] 来自:".$QQWry->Country.$QQWry->Local."&nbsp; ;&nbsp; ;++";
}
}

这样的只能检测 透明代理普通匿名代理检测不出

能解决下不

可否把结果发送到我邮箱: wxinlin@gmail.com
谢了

qq999 发表于 2009 年 3 月 2 日 21:58:52

帮顶
页: [1]
查看完整版本: 问下 如何检测代理的匿名性?