计划,每天学习两小时,坚持带来大改变。

DISCUZ!1X 使用CDN后获取真实IP方法

PHP 阿尤 2485浏览 0评论

DX 修改如下文件 /source/class/class_core.php

修改办法,在class_core.php中:


以下为官方原始代码

        function _get_client_ip1() { 
                $clientip = ''; 
                if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { 
                        $clientip = getenv('HTTP_CLIENT_IP'); 
                } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { 
                        $clientip = getenv('HTTP_X_FORWARDED_FOR'); 
                } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { 
                        $clientip = getenv('REMOTE_ADDR'); 
                } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { 
                        $clientip = $_SERVER['REMOTE_ADDR']; 
                } 
  
                preg_match("/[\d\.]{7,15}/", $clientip, $clientipmatches); 
                $clientip = $clientipmatches[0] ? $clientipmatches[0] : 'unknown'; 
                return $clientip; 
        }

复制代码
以下代码是在网上找到的,已经通过我的测试,请大家看看是否会出现其他问题。

function _get_client_ip()    
global $_SERVER; 
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))   

$realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 

elseif (isset($_SERVER["HTTP_CLIENT_IP"]))   

$realip = $_SERVER["HTTP_CLIENT_IP"]; 

else   

$realip = $_SERVER["REMOTE_ADDR"]; 

return $realip; 
}


转载请注明:阿尤博客 » DISCUZ!1X 使用CDN后获取真实IP方法

游客
发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 验证码 (必填)点击刷新验证码