Typecho 在用户评论,网站访问时都会记录其访问 ip 地址。

不过开启 cdn 之后,经常记录下来的就是 cdn 的代理 ip 了,后台评论也经常看见都是多个评论的 ip 都是同一个 ip,期初以为是别人刷的评论,

后来才发现是 cdn 的作用,差点就删除了这些评论了,那么如何解决 Typecho 使用 CDN 后不显示访客真实 IP 地址呢?

这里我们只需要一段很简单小巧的代码即可搞定完事。

这里我就直接附上相关代码,代码添加至 Typecho 根目录下 config.inc.php 文件中的最上面:

//** 防止CDN造成无法获取客户真实IP地址 */
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{
    $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = $list[0];
}

使用之后,你的 Typecho 站点的评论就会直接显示用户的真实地址了,而不是 cdn 的代理地址。

方法二:
在 config.inc.php 里加上一行:

define('__TYPECHO_IP_SOURCE__','HTTP_X_FORWARDED_FOR');

如果是用 HTTP_CLIENT_IP 获取地址的话就是

define('__TYPECHO_IP_SOURCE__','HTTP_CLIENT_IP');
我爱云盾-免费CDN-免备案CDN-国内CDN-高防CDN
最后修改:2022 年 07 月 07 日
如果觉得我的文章对你有用,请随意赞赏