解决Emlog开启CDN后评论IP不准确的办法-经验交流论坛-轻友天地-轻论坛

解决Emlog开启CDN后评论IP不准确的办法

网站接入CDN后,在Emlog获取用户的IP后会导致不准确,甚至网站日志上获取的IP就不是真实的IP,是CDN服务器的IP,这就会引发一些问题。对此本文就针对Emlog站点开启了CDN后评论IP不准确的解决方法。

修改步骤

此步骤需要修改核心文件,修改前请做好备份,找到include/lib/function.base.php,Emlogpro在38行开始
将以下进行代码替换。

/**
 * 获取用户ip地址
 */
if (!function_exists('getIp')) {
    function getIp() {
        $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
        if (!filter_var($ip, FILTER_VALIDATE_IP)) {
            $ip = '';
        }
        return $ip;
    }
}

替换为

/**
 * 获取用户ip地址
 */
if (!function_exists('getIp')) {
    function getIp() {
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        $ip = $list[0];
    }        
    if (!ip2long($ip)) {
        $ip = '';
    }
    return $ip;
}
}

修改保存以后就可以正常获取IP了,此方法对CDN加速的厂商没用限制,不管是百度云加速七牛等CDN加速的一样适用。

请登录后发表评论

    没有回复内容


Warning: error_log(/www/wwwroot/www.qingluntan.cn/wp-content/plugins/spider-analyser/#log/log-2222.txt): failed to open stream: No such file or directory in /www/wwwroot/www.qingluntan.cn/wp-content/plugins/spider-analyser/spider.class.php on line 2900