IT技术博客大学习 共学习 共进步

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

司徒楠,一个PHP程序员 2010-06-27 22:29:17 浏览 5,822 次
  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. 使用python来抓取新浪的IP数据 (阅读 8,282)
  2. 获取指定(访客)IP的所有信息,地址、邮政编码、国家、经纬度等的API (阅读 6,361)
  3. 命令行获取主机外网IP,相当于ip138的功能 (阅读 6,022)
  4. 计算机网络协议包头赏析-IP (阅读 5,843)
  5. [调优] Squid 不同版本的性能对比 (阅读 5,462)
  6. nginx在fastcgi模块中转发真实的后端IP (阅读 4,982)
  7. 获取客户端真实IP方法 (阅读 4,881)
  8. CDN技术 (阅读 4,762)
  9. nginx.conf控制指定的代理ip和ip访问的设置手记 (阅读 4,623)
  10. ip地址中的网络号,主机号 (阅读 4,521)