PHP获取客户端真实IP

2019-01-20 04:14:25 8237

我们经常要用数据库记录用户的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();


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: