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

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

懒人请下载  

class_core.rar


修改办法,在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;
}


编辑:西部数码
日期:2010-08-17

收藏 】 【 打印 】   
您可对文档进行评分哟~

勾选遇到的问题提交给我们,收到反馈后保证及时修正更新!

提交反馈需要先登陆会员帐号

上一篇:如何把73G-10G以外的磁盘大小,挂在/home分区
下一篇:西部数码携支付宝推出阶梯费率接口!
若文档内容对您没有帮助,不能解决问题? 您还可以 咨询在线客服提交工单搜索常见问题 ,我们将竭诚为您服务。
  >> 相关文章
 
分享至:
Top

24小时客服热线

400-651-5660

您好,非正常上班时间若有紧急技术问题,请拨总机后按7号键, 其他问题请提交工单或在上班时间联系,谢谢支持!