Typecho 配置 CloudFlare CDN 后获取用户真实 IP

问题来源

网站在使用CloudFlare CDN服务后,有时候会无法获取到用户访问的真实IP,而导致UserAgent插件无法查询正确的用户IP信息。

解决思路

通过PHP超全局变量 $_SERVER['REMOTE_ADDR'] 获得的IP全部是CDN节点的IP,这样会影响一些功能的使用。这种情况下可以使用PHP超全局变量 $_SERVER['HTTP_X_FORWARDED_FOR'] 来获取访问者真实IP。

食用指南

请在 Typecho 站点根目录里的 config.inc.php 添加下面这段代码

/** 获取用户真实IP */
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{
    $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = $list[0];
 }

引用资源:网站开启CDN后获取访问者真实IP

最后修改:2019 年 01 月 02 日 05 : 50 PM

发表评论