森七

解决Emlog用CDN加速后无法获取真实IP的问题
站点启用CDN服务器之后emlog就会无法正确的获取到访客的IP地址,比如俺是360CDN,几乎都是“广东佛山”的...
扫描右侧二维码阅读全文
01
2017/08

解决Emlog用CDN加速后无法获取真实IP的问题

站点启用CDN服务器之后emlog就会无法正确的获取到访客的IP地址,比如俺是360CDN,几乎都是“广东佛山”的显示,解决这个问题我们需要修改一下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;
}

就OK了!

阿里云广告
Last modification:February 9th, 2019 at 09:42 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment

10 comments

  1. Linux杜朋

    现在免费支持https的cdn好少啊!

    1. 森七
      @Linux杜朋

      @Linux杜朋:好像腾讯云支持来着,新出来的几个cdn或许也可以用

  2. 微凉

    可以,很强势,我原来用emlog时也无法获取

    1. 森七
      @微凉

      @微凉:哼,WP了@(不高兴)

      1. 微凉微凉
        @森七

        @森七:来呀来呀,wp带你飞

  3. ☆WR☆

    百度云加速也是这样吗

    1. 森七
      @☆WR☆

      @☆WR☆:我是用的百度云,但是没感觉出错,不过我是取消了显示ip的

  4. 唯历史

    就不知道对搜索引擎影响大不大

    1. 微凉
      @唯历史

      @唯历史:没有影响的

    2. 森七
      @唯历史

      @唯历史:照理来说,应该不会