网站使用CDN后无法获取用户真实IP的解决方法
2023-12-14 19:39:24
宝塔或Nginx环境
如果你使用的宝塔或Nginx,可以在宝塔面板或Nginx中,找到配置文件增加如下代码后,重载配置或者重启 Nginx 即可:
#CDN获取真实ip??
set_real_ip_from?0.0.0.0/0;??
real_ip_header?X-Forwarded-For;
PHP语言函数方法
如果你使用的PHP语言,可以使用以下函数解决获取不到真实IP问题。
function?GetClientIP(){
$ip?=?$_SERVER["HTTP_X_FORWARDED_FOR"];
if($ip?!=?""){
?$arr?=?explode(",",$ip);
?return?$arr[0];
}else{
?return?$_SERVER["REMOTE_ADDR"];
}
}
完整示例代码:
<?php
$real_ip?=?'';
if?(isset($_SERVER['HTTP_X_FORWARDED_FOR']))?{
????$arr?=?explode(',',?$_SERVER['HTTP_X_FORWARDED_FOR']);
????$pos?=?array_search('unknown',?$arr);
????if?(false?!==?$pos)?{
????????unset($arr[$pos]);
????}
????$real_ip?=?trim($arr[0]);
}?elseif?(isset($_SERVER['HTTP_CLIENT_IP']))?{
????$real_ip?=?$_SERVER['HTTP_CLIENT_IP'];
}?elseif?(isset($_SERVER['REMOTE_ADDR']))?{
????$real_ip?=?$_SERVER['REMOTE_ADDR'];
}
文章来源:https://blog.csdn.net/mo3408/article/details/135002040
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!