解决Emlog开启CDN后评论IP不准确的办法-路羽博客-第1张图片

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

解决Emlog开启CDN后评论IP不准确的办法-路羽博客-第2张图片

作者: 路羽

原创资源分享博客

解决Emlog开启CDN后评论IP不准确的办法-路羽博客-第3张图片微信小程序

路羽博客 资源分享

前言

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

解决Emlog开启CDN后评论IP不准确的办法-路羽博客-第4张图片

修改步骤

  1. 此步骤需要修改核心文件,修改前请做好备份,找到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;
        }
    }
  2. 替换为
    /**
     * 获取用户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;
    }
    }
  3. 修改保存以后就可以正常获取IP了,此方法对CDN加速的厂商没用限制,不管是百度云加速七牛等CDN加速的一样适用

emlogpro版本1.8之前需要按以上方法修改,Pro 1.9.0修改地址改为/include/lib/common.php

在Pro 1.9.0版本之后官方更新了获取ip的方法,因此不用手动修改了

分享到:
未经允许不得转载:

作者: 路羽, 转载或复制请以 超链接形式 并注明出处 路羽博客
原文地址: 《解决Emlog开启CDN后评论IP不准确的办法》 发布于2022-12-17

评论

          
       
切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏