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

两天
两天
管理员
731
文章
0
粉丝
学习资料评论25,8823字数 373阅读1分14秒阅读模式

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

本站文章大部分始于原创,用于个人学习记录,可能对您有所帮助,仅供参考!

weinxin
312379857
微信号已复制
←QQ扫一扫添加QQ好友
版权声明:本站原创文章转载请注明文章出处及链接,谢谢合作!
广告也精彩
 最后更新:2023-12-12
  • CDN
  • 真实IP
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证