php 获取cdn 客户端,做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)

asp函数代码:

function checkip(checkstring)'用正则判断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()'取真实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

discuz论坛取真实IP的php代码,其它类似,请参考稍做修改

(discuz修改include/common.inc.php)

用以下这段代码:

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')) {

$onlineip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),

'unknown')) {

$testip = explode('.', getenv('HTTP_X_FORWARDED_FOR'));

if ($testip[0]=='192′ && $testip[1]=='168′) {

$onlineip = getenv('REMOTE_ADDR');

}

elseif($testip[0]=='10′) {

$onlineip = getenv('REMOTE_ADDR');

}

else {

$onlineip = getenv('HTTP_X_FORWARDED_FOR');

}

//gamesir hack end} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'),

'unknown')) {

$onlineip = getenv('REMOTE_ADDR');

} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER

['REMOTE_ADDR'],'unknown')) {

//by Johnny

$tmp_ip = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);

$tmp_ip1 = explode(',',$tmp_ip[0]);

if ($tmp_ip1[0] =='192′ && $tmp_ip1[1] =='168′) {

$onlineip = getenv('REMOTE_ADDR');

}else if($tmp_ip1[0]=='10′) {

$onlineip = getenv('REMOTE_ADDR');

}

else{

$onlineip = $tmp_ip[0];

}

unset($tmp_ip);unset($tmp_ip1);

}

替换这段代码:

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')) {

$onlineip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),

'unknown')) {

$onlineip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'),'unknown')) {

$onlineip = getenv('REMOTE_ADDR');

} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER

['REMOTE_ADDR'],'unknown')) {

$onlineip = $_SERVER['REMOTE_ADDR'];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值