WordPress使用CDN或者反代后如何获取访客的真实IP

给国外服务器的网站套了个香港反代加速一下,结果反代后各种ip拦截都出了问题。

查了下原来WordPress 获取用户IP似乎用的是 REMOTE_ADDR,这样反代或者使用cdn后就全是从反代机以及CDN 服务器的 IP。

这样的话,在 wp-config.php 文件或者主题文件中增加下面代码就可以获取 CDN 后访客的真实IP了。用解析后的 HTTP_X_FORWARDED_FOR 替换 REMOTE_ADDR。

// 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]);
}

或者下面这段

//获取真实ip地址
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  $_SERVER['REMOTE_ADDR'] = $list[0];
}
WP技巧

All in One SEO Pack插件schema输出导致WP文章时间提前8小时bug修复

2022-9-9 14:29:59

代码·功能分享发现

WordPress网站百度快速收录推送代码

2023-3-14 23:45:39

个人中心
今日签到
有新私信 私信列表
搜索