WordPress 使用 CDN 后获取访客真实 IP

前言

今天博主发现一个问题,就是因为开启了CDN后博客评论无法显示正常真实ip地址,通过博主找了网上的方法发现还是无法成功,要么就是ip直接不显示了。通过对CDN规则找出了wordpress不显示真实ip地址的方法。现在分享给大家。

WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR,这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP。

在 wp-config.php 文件中增加下面代码就可以获取 CDN 后访客的真实 IP。这个函数的核心是用解析后的 HTTP_X_FORWARDED_FOR 替换 REMOTE_ADDR。

无法正常显示ip地址

将下列代码放在wp-config.php文件中开头位置,如下图

// WordPress 使用 CDN 后获取访客真实 IP
if( !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
    $get_HTTP_X_FORWARDED_FOR = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = trim($get_HTTP_X_FORWARDED_FOR[0]);
}

THE END