php如何获取请求接口资源的请求者的IP地址

php如何获取请求接口资源的请求者的IP地址,第1张

/
     获取客户端IP地址
     @param integer $type
     @return mixed
    /
   function getclientip() {
       static $realip = NULL;
        
       if($realip !== NULL){
           return $realip;
       }
       if(isset($_SERVER)){
           if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ //但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
               $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
               / 取X-Forwarded-For中第一个非unknown的有效IP字符串 /
               foreach ($arr AS $ip){
                   $ip = trim($ip);
                   if ($ip != 'unknown'){
                       $realip = $ip;
                       break;
                   }
               }
           }elseif(isset($_SERVER['HTTP_CLIENT_IP'])){//HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是"超级匿名代理",则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
               $realip = $_SERVER['HTTP_CLIENT_IP'];
           }else{
               if (isset($_SERVER['REMOTE_ADDR'])){ //正在浏览当前页面用户的 IP 地址
                   $realip = $_SERVER['REMOTE_ADDR'];
               }else{
                   $realip = '0000';
               }
           }
       }else{
           //getenv环境变量的值
           if (getenv('HTTP_X_FORWARDED_FOR')){//但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址
               $realip = getenv('HTTP_X_FORWARDED_FOR');
           }elseif (getenv('HTTP_CLIENT_IP')){ //获取客户端IP
               $realip = getenv('HTTP_CLIENT_IP');
           }else{
               $realip = getenv('REMOTE_ADDR');  //正在浏览当前页面用户的 IP 地址
           }
       }
       preg_match("/[\d\]{7,15}/", $realip, $onlineip);
       $realip = !empty($onlineip[0])  $onlineip[0] : '0000';
       return $realip;
   }

以上就是关于php如何获取请求接口资源的请求者的IP地址全部的内容,包括:php如何获取请求接口资源的请求者的IP地址、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9510750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存