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

宝塔或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'];

}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-18 18:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-18 18:14:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-18 18:14:02       82 阅读
  4. Python语言-面向对象

    2023-12-18 18:14:02       91 阅读

热门阅读

  1. 什么是NPM,NPM使用方法

    2023-12-18 18:14:02       58 阅读
  2. 中国一重集中采购平台的建设经历和系统亮点

    2023-12-18 18:14:02       56 阅读
  3. 【unity】如何让Unity应用在退出时关闭某些服务

    2023-12-18 18:14:02       55 阅读
  4. Hive高级语法

    2023-12-18 18:14:02       54 阅读
  5. 华为HCIP认证H12-821题库上

    2023-12-18 18:14:02       41 阅读