前言
最近启用CDN内容分发后发现评论评论人的IP都是CDN的节点IP(也有可能是服务器IP),由于使用CDN后访问用户服务器的IP都变成CDN服务器的IP。百度一下,发现了一个好的方法。只要添加一段代码,IP地址就可以正常了,其实CDN在头部应该有把访问者IP发送的,那段代码就是把 wordpress 的 ip 中变量换成 $_SERVER 获取的。这个可以用在任意CDN和反代里面,IP地址可以获取正确的。
在 WordPress 安装根目录 下面 wp-config.php 文件,打开后,在其内添加下面代码:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}