WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR,这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP。文章源自两天的博客-https://2days.org/85180.html
在 wp-config.ph
p 文件中增加下面代码就可以获取 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
本站文章大部分始于原创,用于个人学习记录,可能对您有所帮助,仅供参考!