2019独角兽企业重金招聘Python工程师标准>>>

公司论坛升级成Discuz x3之后获取的IP地址老是不正确导致一下莫名其妙的问题,解决方法如下:

打开\source\class\discuz\discuz_application.php文件,找到_get_client_ip(大约360行)方法。将代码改为:

private function _get_client_ip()
{$ip = $_SERVER['REMOTE_ADDR'];if(isset($_SERVER['HTTP_CDN_SRC_IP'])){$ip = $_SERVER['HTTP_CDN_SRC_IP'];}elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])){$ip = $_SERVER['HTTP_CLIENT_IP'];}elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)){foreach ($matches[0] AS $xip){if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)){$ip = $xip;break;}}}return $ip;
}

需要注意的是不同的CDN公司有可能会有差别,最简单的方法是新建一个PHPINFO文件在服务端看一下是否有对应的变量。

转载于:https://my.oschina.net/longjianghu/blog/167467

Discuz x3论坛使用CDN后获取真实IP的解决方法相关推荐

  1. 老大说,网上这种获取真实IP地址的方法不对,我不信...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:蔡永吉  来源:http://bit.ly/33H8RMm ...

  2. 502 proxy error解决方法_老大说,网上这种获取真实IP地址的方法不对,我不信......

    作者:蔡永吉  来源:http://bit.ly/33H8RMm想必大家对这段代码并不陌生: public String getIpAddr(HttpServletRequest request) { ...

  3. nginx反向代理后,java获取真实ip和解决request.getServerName()的问题

    1. nginx.conf的server下增加以下配置 #解决request.getServerName()的问题proxy_set_header Host $host:$server_port;pr ...

  4. linux如何添加360网站卫士ip,使用加速乐、360网站卫士PHP无法获取用户IP的解决方法...

    04 五月 分类:网站技术 | 评论数:0 | 点击数:2043 | 发表日期时间:2015-05-04 23:40:34 分享到: 本文导读:使用加速乐或者360网站卫士后,虽然可以保护真实服务器I ...

  5. java获取真实ip的方法

    在网络中,如果不想被人监听,那么就需要获取 IP地址了,在电脑中我们可以使用到 ip地址获取工具,那么如何在 Java中获取真实的 IP地址呢? 1.首先我们需要先准备一台电脑,然后将电脑进行联网: ...

  6. WordPress 使用 CDN 后获取访客真实 IP

    WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR,这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP. 在 wp-config.php 文件中增加下面代码 ...

  7. 论坛php 图片上传,Discuz! X3 论坛文件图片上传尺寸:小于2M的修改方法

    相信很多人都在使用Discuz! X3 论坛程序,笔者最近也用Discuz! X3.2 开办了一个论坛,但是当用户上传文件时,总是提示:文件尺寸 小于2M,于是就去后台修改相应的设置,但是改来改去,一 ...

  8. CDN识别和真实IP获取(信息收集篇)

    进来先点个赞,评个论,关个注呗- 获取更多学习资料.想加入社群.深入学习,请扫我的二维码或加Memory20000427,诚意教学,白嫖绕道. 真实IP收集方法: 验证是否存在CDN 方法1: 很简单 ...

  9. 绕过CDN查找网站真实IP方法收集

    方法1 很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有: http://ping.chinaz.com/ http://p ...

最新文章

  1. CImg库的一个简单例子
  2. 《Java 开发从入门到精通》—— 2.2 编写第一段Java程序
  3. android 虚拟按键挡住布局,Android 关于导航栏(虚拟按键)遮挡PopupWindow底部布局的问题...
  4. 2.8 多任务学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  5. win下anaconda装python2.7和3.5以及jupyter共存 (本篇实践通过)
  6. android带方框倒计时,简单漂亮的彩色方块计时器和倒计时js代码
  7. 父进程给子进程传参数
  8. Linux 系统下对目录扩容的方法
  9. 诹图系列(2): 堆积条形图
  10. 我们自研的那些Devops工具
  11. 「运维有小邓」AD域管理软件——ADManager Plus介绍
  12. gis核密度分析工具_Arcgis软件支持下的核密度估计
  13. 计算机网络第七版--概述知识点总结
  14. 腾讯云服务器获取root权限(ubuntu系统)
  15. matlab命令 elempro,装好MATLAB后,The markup in the document preceding the root elem
  16. AR Kit Core ML 将救百万iOS开发者于水深火热中
  17. OpenCV3实现橡皮擦功能[画板]
  18. 中国石油天然气集团公司信息管理部总经理刘希俭:持续提升信息化价值的思考与实践
  19. Python 安装opencv-python模块
  20. 如何安装IBM QISKit

热门文章

  1. 如何提高python的运行效率_几个提升Python运行效率的方法之间的对比
  2. 谷歌社交平台新漏洞威胁千万用户隐私 将提早关闭
  3. windows上下载redis扩展
  4. Introduction to pinatrace annotate version 2: a look into latches again
  5. 加载静态文件,父模板的继承和扩展
  6. 【NLP新闻-2013.06.03】New Book Where Humans Meet Machines
  7. 移位运算[c][code]
  8. 警告:隐式声明与内建函数‘exit‘不兼容解决方案
  9. docker pull下载镜像时的报错及其解决方法
  10. SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器