网站使用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;

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

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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。