PHP获得用户使用的代理服务器ip

在PHP 中用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址
但如果客户端是使用代理服务器来访问
那取到的就是代理服务器的 IP 地址
要想透过代理服务器取得客户端的真实 IP 地址
就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取
但并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP
有些用此方法读取到的仍然是代理服务器的 IP
  1. function get_userip()
  2. {
  3.    if($_SERVER[HTTP_X_FORWARDED_FOR]=='')     
  4.    {
  5.         if($_SERVER[HTTP_REMOTE_ADDR]=='')
  6.          {   
  7.             $userip=$_SERVER[HTTP_CLIENT_IP];  
  8.          } else {
  9.             $userip=$_SERVER[HTTP_REMOTE_ADDR];}
  10.          }
  11.    }
  12.   else
  13.   {
  14.     $userip=$_SERVER[HTTP_X_FORWARDED_FOR];
  15.   }
  16.   return $userip;
  17. }

你可能感兴趣的:(PHP,server,服务器)