做了CDN加速网站获取用户真实IP函数

风清扬斈 8年前 (2011-10-25) 信息科技 2919 0

ASP代码如下:
function checkip(checkstring)(i)用正则判断IP是否合法
dim re1
set re1=new RegExp
re1.pattern="^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$"
re1.global=false
re1.Ignorecase=false
checkip=re1.test(checkstring)
set re1=nothing
end function

复制代码 代码如下:
function get_cli_ip()(i)取真实IP函数,先 HTTP_CLIENT_IP 再 HTTP_X_FORWARDED_FOR 再 REMOTE_ADDR
dim client_ip
if checkip(Request.ServerVariables("HTTP_CLIENT_IP"))=true then
get_cli_ip = checkip(Request.ServerVariables("HTTP_CLIENT_IP"))
else
MyArray = split(Request.ServerVariables("HTTP_X_FORWARDED_FOR"),",")
if ubound(MyArray)>=0 then
client_ip = trim(MyArray(0))
if checkip(client_ip)=true then
get_cli_ip = client_ip
exit function
end if
end if
get_cli_ip = Request.ServerVariables("REMOTE_ADDR")
end if
end function

调用示例:ip=get_cli_ip()

php代码如下:
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
{
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER[(i)HTTP_X_FORWARDED_FOR(i)]))
{
$ips = explode (", ", $_SERVER[(i)HTTP_X_FORWARDED_FOR(i)]);
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 ? $ip : $_SERVER[(i)REMOTE_ADDR(i)]);
}
$_SGLOBAL[(i)onlineip(i)] = get_real_ip();
调用示例:$ip=get_real_ip();

"

相关推荐

  • 网友评论

    • (*)

    最新评论