IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

当网站使用CDN后获取客户端真实IP的方法

司徒楠,一个PHP程序员 2010-06-27 22:29:17 累计浏览 5,973 次
本机暂存
  1. function get_client_ip()
  2. {
  3.     $ip=false;
  4.     if(!empty($_SERVER["HTTP_CLIENT_IP"]))
  5.     {
  6.         $ip = $_SERVER["HTTP_CLIENT_IP"];
  7.     }
  8.     if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
  9.     {
  10.         $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
  11.         if ($ip)
  12.         {
  13.             array_unshift($ips, $ip); $ip = FALSE;
  14.         }
  15.         for ($i = 0; $i < count($ips); $i++)
  16.         {
  17.             if (!eregi("^(10|172\.16|192\.168)\.", $ips[$i]))
  18.             {
  19.                 $ip = $ips[$i];
  20.                 break;
  21.             }
  22.         }
  23.     }
  24.     return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
  25. }

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 淘宝图片存储架构 (累计阅读 10,961)
  2. 从谷歌宕机事件认识互联网工作原理 (累计阅读 8,746)
  3. PHP用CURL伪造IP和来源 (累计阅读 5,392)
  4. squid缓存失效之谜:一步步提高squid缓存命中率办法记录 (累计阅读 4,962)
  5. CDN技术 (累计阅读 4,900)
  6. curl快速实现网速测试 (累计阅读 4,823)
  7. 如何诊断CDN故障 (累计阅读 4,544)
  8. web业务尽快升级到centos 6.4的理由 (累计阅读 4,299)
  9. 如何根据http请求信息区分访问用户的国家、语言信息 (累计阅读 4,165)
  10. 杨建:网站加速--实例分析篇 (累计阅读 3,763)