WHMCS网站使用百度CDN后不显示用户访问的真实IP解决方法

WHMCS使用CDN后会显示CDN节点服务器IP,不显示用户的真实IP,如使用百度的CDN会显示百度CDN节点IP,如下图中用户访问IP显示:58.216.2.205,在百度会员内容分发网络CDN中的:工具>>IP检测 中还是显示为百度云节点IP。

百度搜索解决方法,很多人提供的方法是在configuration.php最后加上以下代码,但仍不能解决问题。

$_SERVER[‘REMOTE_ADDR’] = $_SERVER[‘HTTP_X_FORWARDED_FOR’]; // 获取真实IP
list($_SERVER[‘REMOTE_ADDR’]) = explode(‘, ‘, $_SERVER[‘REMOTE_ADDR’], 2); // 可能通过多个代理,其中第一个为真实ip地址
$_SERVER[‘HTTP_X_FORWARDED_FOR’] = $_SERVER[‘REMOTE_ADDR’]; // 添加到WHMCS IP变量

还有个方法是在WHMCS网站后台>>系统设置>>常规设置>>安全,在Trusted Proxies里填上百度CDN提供的回源IP,查看用户访问的IP是和之前不同,但经百度工具检查这些IP也还是百度CDN节点IP。

以上方法都不能解决问题,只能利用编写代码方法解决。

解决方法:在includes/hooks中增加文件,写入以下代码

当访客登录会员,hook里执行函数获取客户真实ip,然后直接写到数据库

代码百度网盘下载链接: https://pan.baidu.com/s/1YBKZo-XGfRpCdKn_O4CKqA 提取码: wts4 ,无毒,上传至hooks中即可解决问题。

发表评论