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

66次阅读
没有评论

共计 785 个字符,预计需要花费 2 分钟才能阅读完成。

前言

之前博客就一直托管在甲骨文裸奔,可惜鹅厂打电话得解析到他家国内服务器不然备案没了,这不,刚迁移完把 又拍云 的 CDN 套上了,按照规矩测试了一遍,到了评论的时候发现评论者的 IP 及归属地为最近的 CDN 节点的 IP 归属地,所以在后台看评论的时候看到的是 CDN 的 IP 而不是访客的真实 IP,问题不大,有两个办法

 

教程

第一个办法就是下面这段代码可以在 PHP 中用来获取客户真实 IP 地址,即使在使用 CDN 的情况下也可以使用,它会检查 HTTP_X_FORWARDED_FOR 标头,如果存在,则将其值分解成一个逗号分隔的列表,并将第一个 IP 地址作为客户端的真实 IP 地址。但是,这种方法并不总是准确的,因为客户端可以伪造此标头,但在通常情况下是比较可靠的

// 防止因 CDN 造成无法获取客户真实的 IP 地址
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}

 

第二个办法将这段代码添加到您的 WordPress 主题的 functions.php 文件中,然后在需要获取访客真实 IP 地址的地方调用 get_real_ip_address() 函数即可。

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'];
}
正文完
关注 “浮沉博客” 微信公众号获取更多内容
post-qrcode
 1
浮沉
版权声明:本站原创文章,由 浮沉 于2024-10-15发表,共计785字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)