网站使用CDN后无法获取用户真实IP的解决方法

宝塔或Nginx环境

如果你使用的宝塔或Nginx,可以在宝塔面板或Nginx中,找到配置文件增加如下代码后,重载配置或者重启 Nginx 即可:

php 复制代码
#CDN获取真实ip  

set_real_ip_from 0.0.0.0/0;  

real_ip_header X-Forwarded-For;

PHP语言函数方法

如果你使用的PHP语言,可以使用以下函数解决获取不到真实IP问题。

php 复制代码
function GetClientIP(){

$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];

if($ip != ""){

 $arr = explode(",",$ip);

 return $arr[0];

}else{

 return $_SERVER["REMOTE_ADDR"];

}

}

完整示例代码:

php 复制代码
<?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'];

}
相关推荐
2301_7807896613 分钟前
CDN加速与流量管理的最佳结合
网络·安全·web安全·架构·ddos
u01090535913 分钟前
2026年分享4款内网穿透工具,详细总结
网络·ipv6
胡志辉的博客19 分钟前
网络七层到底怎么落到一次前端请求上:从浏览器到网卡,再到远端服务器
服务器·前端·网络
爱学习的小囧19 分钟前
ESXi 升级 8.0 后 Realtek 网卡无法识别解决教程
运维·网络·esxi·realtek 网卡
wanhengidc21 分钟前
服务器该如何防范网络攻击?
运维·服务器·网络·网络协议·安全·web安全·智能手机
ACP广源盛1392462567327 分钟前
长距传输全能芯 @ACP#GSV5800 Type‑C/DP1.4/HDMI2.0 高速延长芯片
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
2501_9130613427 分钟前
网络原理之HTTP
java·网络·面试
盟接之桥29 分钟前
盟接之桥说制造:商业的“长征”--如何用“倒金字塔”思维重塑制造业增长模型?
网络·安全·低代码·汽车·制造
摄影图31 分钟前
智能家居科技单品图片素材 解锁便捷智慧居家体验
网络·科技·aigc·智能家居·贴图·插画
王莎莎-MinerU38 分钟前
IP Publisher × Hermes:个人IP内容自动化完全指南
人工智能·tcp/ip·chatgpt·自动化·创业创新·个人开发