星辉互联

您的当前位置:网站首页 » 帮助中心» 云主机

论坛做了CDN后得不到访问者的真实IP的解决办法

来源:星辉互联类型:帮助文件 更新:2009-3-25 点击:5263

论坛做了CDN后得不到访问者的真实IP的解决办法(2008.12.26更新)
本帖最后由 yixt2000 于 2008-12-26 10:45 编辑 

修改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')) {

        $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'];

}
复制代码替换成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')) {

        //使用CDN后判断真实ip by CDNUNION Johnny

        

        $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);



}
 

我们很乐意帮助您!请联系在线客服或致电我们。7×24小时客服热线: 0833-2438125