一般站点在配置了 CDN 后都无法获取访客真实 IP 地址了,只能获取到 CDN 的代理 IP。此时会有各种各样的问题,如无法有效过滤垃圾留言和封杀恶意攻击等等。

下面代码在 Typecho 和 WordPress 上都是通用的,分别放到 Typecho 的config.inc.php 和 WordPress 的 wp-config.php 里即可。代码如下:

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

添加完之后,你站点的评论就会直接显示访客真实 IP 了。