正文

前几天我写了一篇关于《解决WP开CDN无法获取真实IP》的文章,今天碰巧看到一个人在群里求助,他用的是emlog程序,也遇到同样的情况(开启cdn之后无法获取真实ip),于是我就想着把wordpress的解决方案放到emlog上面去试一试,结果还真的可以,下面就分享一下过程给小伙伴们参考一下,说不定还能再别的程序上面解决问题呢!

解决步骤

用编辑器打开 include/lib/function.base.php , 在60行左右能找到以下的代码

function getIp() {
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
        if (!ip2long($ip)) {
            $ip = '';
        }
        return $ip;
}

修改为以下代码

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;
}

注意

以上代码只在emlog5.3.1上面测试过,其他版本请自行测试(理论可行)

如果觉得我的文章对你有用,请随意赞赏