编程爱好者之家

PHP获取客户端真实IP

2018-11-23 17:12:12 505

我们经常要用数据库记录用户的IP,以下代码可以获取客户端真实的IP:

//获取用户真实IP 
function get_real_ip(){
   $ip=false;
   if(!empty($_SERVER["REMOTE_ADDR"])){
      $ip = $_SERVER["REMOTE_ADDR"];
   }
   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && !$ip){
      $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
      if($ip){
         array_unshift($ips, $ip); 
         $ip = false; 
      }
      for($i = 0; $i < count($ips); $i++){
         if (!preg_match ("/^(10|172.16|192.168).$/", $ips[$i])){
            $ip = $ips[$i];
            break;
         }
      }
   }

   return ($ip ? $ip : $_SERVER['HTTP_CLIENT_IP']);
}

使用方法如下:
echo get_real_ip();


同类文章