Created
January 6, 2012 15:49
-
-
Save binux/1571137 to your computer and use it in GitHub Desktop.
请求信息输出
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>CS_ProxyJudge ver 1.0</title> | |
</head> | |
<body bgcolor="#808080"> | |
<font color="#FFFFFF"><B> | |
<PRE> | |
<? | |
//======================================================================= | |
// 修改记录: | |
// 2006-09-26 去掉Referer的判断,避免代理通过统计屏蔽代理验证通过 | |
// 2006-10-13 增加读取IP的方式 | |
// 2006-11-28 增加对代理国家的判断 | |
//======================================================================= | |
$HTTPHeaderArray[0] ="_PROXY"; | |
$HTTPHeaderArray[1] ="FORWARDED"; | |
$HTTPHeaderArray[2] ="HTTP_CACHE_CONTROL"; | |
$HTTPHeaderArray[3] ="HTTP_CLIENT_IP"; | |
$HTTPHeaderArray[4] ="HTTP_FORM"; | |
$HTTPHeaderArray[5] ="HTTP_FORWARDED"; | |
$HTTPHeaderArray[6] ="HTTP_MAX_FORWARDS"; | |
$HTTPHeaderArray[7] ="HTTP_PRAGMA"; | |
$HTTPHeaderArray[8] ="HTTP_PROXY"; | |
$HTTPHeaderArray[9] ="HTTP_PROXY_CONNECTION"; | |
$HTTPHeaderArray[10] ="HTTP_VIA"; | |
$HTTPHeaderArray[11] ="HTTP_X"; | |
$HTTPHeaderArray[12] ="HTTP_X_BLUECOAT_VIA"; | |
$HTTPHeaderArray[13] ="HTTP_X_FORWARDED_FOR"; | |
$HTTPHeaderArray[14] ="HTTP_X_HOST"; | |
$HTTPHeaderArray[15] ="HTTP_X_REFERER"; | |
$HTTPHeaderArray[16] ="HTTP_X_SERVER_HOSTNAME"; | |
$HTTPHeaderArray[17] ="PROXY_"; | |
$HTTPHeaderArray[18] ="PROXY_HOST"; | |
$HTTPHeaderArray[19] ="PROXY_PORT"; | |
$HTTPHeaderArray[20] ="PROXY_REQUEST"; | |
$HTTPHeaderArray[21] ="REMOTE_IDENT"; | |
$HTTPHeaderArray[22] ="REMOTE_USER"; | |
$HTTPHeaderArray[23] ="HTTP_ACCEPT"; | |
$HTTPHeaderArray[24] ="HTTP_ACCEPT_LANGUAGE"; | |
$HTTPHeaderArray[25] ="HTTP_ACCEPT_ENCODING"; | |
$HTTPHeaderArray[26] ="HTTP_USER_AGENT"; | |
$HTTPHeaderArray[27] ="HTTP_CONNECTION"; | |
$HTTPHeaderArray[28] ="REMOTE_PORT"; | |
$HTTPHeaderArray[29] ="HTTP_REFERER"; | |
$HTTPHeaderArray[30] ="HTTP_X_CLIENT_IP"; | |
function VerifyerProxyLevel() | |
{ | |
global $GLOBALS; | |
if (($GLOBALS["REMOTE_IDENT"]=="") | |
and ($GLOBALS["REMOTE_USER"]=="") | |
and ($GLOBALS["HTTP_PRAGMA"]=="") | |
and ($GLOBALS["HTTP_VIA"]=="") | |
and ($GLOBALS["HTTP_FORM"]=="") | |
and ($GLOBALS["HTTP_CLIENT_IP"]=="") | |
and ($GLOBALS["FORWARDED"]=="") | |
and ($GLOBALS["HTTP_FORWARDED"]=="") | |
and ($GLOBALS["HTTP_MAX_FORWARDS"]=="") | |
and ($GLOBALS["HTTP_X"]=="") | |
and ($GLOBALS["HTTP_X_FORWARDED_FOR"]=="") | |
and ($GLOBALS["HTTP_X_BLUECOAT_VIA"]=="") | |
and ($GLOBALS["HTTP_X_HOST"]=="") | |
and ($GLOBALS["HTTP_X_REFERER"]=="") | |
and ($GLOBALS["HTTP_X_SERVER_HOSTNAME"]=="") | |
and ($GLOBALS["HTTP_X_BLUECOAT_VIA"]=="") | |
and ($GLOBALS["HTTP_PROXY"]=="") | |
and ($GLOBALS["HTTP_PROXY_CONNECTION"]=="") | |
and ($GLOBALS["_PROXY"]=="") | |
and ($GLOBALS["PROXY_"]=="") | |
and ($GLOBALS["PROXY_HOST"]=="") | |
and ($GLOBALS["PROXY_PORT"]=="") | |
and ($GLOBALS["PROXY_REQUEST"]=="") | |
and ($GLOBALS["HTTP_CACHE_CONTROL"]=="") | |
){ | |
return HIGH_ANONYMITY; //超级代理 | |
} | |
if (($GLOBALS["HTTP_CLIENT_IP"]=="") | |
and ($GLOBALS["HTTP_X_CLIENT_IP"]=="") | |
and ($GLOBALS["FORWARDED"]=="") | |
and ($GLOBALS["HTTP_FORWARDED"]=="") | |
and ($GLOBALS["HTTP_MAX_FORWARDS"]=="") | |
and ($GLOBALS["HTTP_X"]=="") | |
and ($GLOBALS["HTTP_X_FORWARDED_FOR"]=="") | |
and ($GLOBALS["HTTP_X_BLUECOAT_VIA"]=="") | |
and ($GLOBALS["HTTP_X_HOST"]=="") | |
and ($GLOBALS["HTTP_X_REFERER"]=="") | |
and ($GLOBALS["HTTP_X_SERVER_HOSTNAME"]=="") | |
and ($GLOBALS["HTTP_X_BLUECOAT_VIA"]=="") | |
){ | |
return ANONYMOUS; //匿名代理 | |
}else{ | |
return TRANSPARENT_PROXY; //透明代理 | |
} | |
} | |
//取出所有HTTP提交的变量 | |
//while ( list( $key, $val ) = each( $GLOBALS ) ) { | |
// echo $key."=".$val."\n"; | |
//} | |
echo "----------------------------------------\n"; | |
for ($i=0;$i<Count($HTTPHeaderArray);$i++){ | |
if ($GLOBALS[$HTTPHeaderArray[$i]]!="") | |
echo $HTTPHeaderArray[$i]."=".$GLOBALS[$HTTPHeaderArray[$i]]."\n"; | |
} | |
$szRemoteHost = $GLOBALS['REMOTE_HOST']; | |
$szRemoteAddr = $GLOBALS['REMOTE_ADDR']; | |
if ($szRemoteAddr=="")$szRemoteAddr=$_SERVER["REMOTE_ADDR"]; | |
if( $szRemoteHost == $szRemoteAddr || $szRemoteHost == '' ) { | |
$szRemoteHost = gethostbyaddr($szRemoteAddr); | |
if( $szRemoteHost == '' ) $szRemoteHost = $szRemoteAddr ; | |
} | |
echo "\n"; | |
echo "REMOTE_HOST=".$szRemoteHost."\n"; | |
echo "REMOTE_ADDR=".$szRemoteAddr."\n"; | |
$ProxyLevel =VerifyerProxyLevel(); | |
//如果为超级代理,判断HOST是否与ADDR相同(是否全是IP格式地址) | |
if ($ProxyLevel=="HIGH_ANONYMITY"){ | |
if ($szRemoteHost!=$szRemoteAddr){ | |
$ProxyLevel="ANONYMOUS"; | |
} | |
} | |
//有的代理提交的USER_AGENT可能修改为空,直接可判断是通过代理来的,该种代理建议少用 | |
if ($GLOBALS["HTTP_USER_AGENT"]==""){ $ProxyLevel="TRANSPARENT_PROXY"; } | |
echo "----------------------------------------\n"; | |
echo "CS_ProxyJudge Result=$ProxyLevel\n"; | |
echo "----------------------------------------\n"; | |
echo "\n\n"; | |
?> | |
</PRE> | |
</B> | |
<font> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment