WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR,这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP。文章源自两天的博客-https://2days.org/85180.html
在 wp-config.php 文件中增加下面代码就可以获取 CDN 后访客的真实 IP。这个函数的核心是用解析后的 HTTP_X_FORWARDED_FOR 替换 REMOTE_ADDR。文章源自两天的博客-https://2days.org/85180.html
// 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]);
}
文章源自两天的博客-https://2days.org/85180.html
这段代码可以在 PHP 中用来获取客户真实 IP 地址,即使在使用 CDN 的情况下也可以使用。它检查 HTTP_X_FORWARDED_FOR 标头,如果存在,则将其值分解成一个逗号分隔的列表,并将第一个 IP 地址作为客户端的真实 IP 地址。请注意,这种方法并不总是准确的,因为客户端可以伪造此标头,但通常情况下它是可靠的。文章源自两天的博客-https://2days.org/85180.html
或者您还可以使用以下 PHP 代码来在 WordPress 中获取访客真实 IP 地址:文章源自两天的博客-https://2days.org/85180.html
function get_real_ip_address(){
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
$_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
return $_SERVER['REMOTE_ADDR'];
}
将这段代码添加到您的 WordPress 主题的 functions.php 文件中,然后在需要获取访客真实 IP 地址的地方调用 get_real_ip_address() 函数即可。文章源自两天的博客-https://2days.org/85180.html
以上为我在网上找到的方法,希望有用。文章源自两天的博客-https://2days.org/85180.html 文章源自两天的博客-https://2days.org/85180.html
本站文章大部分始于原创,用于个人学习记录,可能对您有所帮助,仅供参考!





