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

摘要

李明博客使用安全宝CDN

李明博客使用安全宝CDN加速后发现评论人的IP都是安全宝CDN的节点IP(也有可能是服务器IP),由于使用CDN后访问用户服务器的IP都变成CDN服务器的IP,查阅了很多资料终于找到了解决办法。

Emlog开启CDN后评论IP不正确

解决这个问题我们需要修改一下emlog内核的代码的,

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

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

将其修改为

/*** 获取用户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;}

修改完毕后保存即可, 此时你的站点的IP地址就能正常显示了,这种方法也同样适用于加速乐、百度云、七牛CDN


版权所有:《李明博客
文章标题:《解决Emlog开启CDN后评论IP不正确的办法
除非注明,文章均为 《李明博客》 原创
转载请注明本文短网址:http://likinming.com/post-339.html  [生成短网址]

发表评论

注意:本博客开启缓存,你的评论一般2小时后才能看到,如是广告,评论将无法显示!

目前评论:32 条

  1. avatar 姜辰
    回复 2015-08-02 23:36  沙发

    现在已经用了这个方法,今天发现博客里所有评论IP都是节点的ip···

  2. avatar oldcat
    回复 2014-09-14 10:23  板凳

    港服也需要用CDN吗?当年天蓝蓝用德国主机时曾用过,也是这么修改文件的

    • avatar 李明

      @oldcat:虽然是港服,但用了CDN后速度更快。

  3. avatar 5258
    回复 2014-09-12 21:46  地板

    这是一篇技术贴啊!

  4. avatar 王小刀
    回复 2014-09-12 20:08  #4 楼

    几百评论了,就不折腾他了。。。。。

  5. avatar 厦门心佳馨
    回复 2014-09-12 17:25  #5 楼

    折腾一下好

  6. avatar 简单生活
    回复 2014-09-11 10:13  #6 楼

    我都不爱折腾了

    • avatar 李明

      @简单生活:生命在于折腾,要加油!

  7. avatar WEB学习吧
    回复 2014-09-10 23:51  #7 楼

    好文章,学习了。不过我用的是百度的加速。

    • avatar 李明

      @WEB学习吧:百度加速如有评论IP不正确的也适用的。

  8. avatar 晨鸟夕阳
    回复 2014-09-10 22:33  #8 楼

    怎么我还没听说过你用的这个博客系统!

    • avatar 李明

      @晨鸟夕阳:好像我真的没说过,呵呵!

    • avatar oldcat

      @晨鸟夕阳:贵站博主与天蓝蓝博客同名儿,这么巧嗷?哈哈

      • avatar 李明

        @oldcat:我以为看错了,哈哈!

  9. avatar 搞笑个性签名
    回复 2014-09-10 19:36  #9 楼

    很好的文章

  10. avatar 圆月博客
    回复 2014-09-10 13:51  #10 楼

    技术的了解了解