php怎麼實現限制IP存取

2020-07-16 10:06:28

php怎麼實現限制IP存取:

//獲取用戶端ip
if (getenv("HTTP_CLIENT_IP"))
  $ip = getenv("HTTP_CLIENT_IP"); 
else if(getenv("HTTP_X_FORWARDED_FOR"))
  $ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
  $ip = getenv("REMOTE_ADDR");
else $ip = "Unknow";
$ALLOWED_IP=array('10.144.39.132');
//允許存取的ip
$check_ip_arr= explode('.',$ip);
//ip引數拆分成陣列
if(!in_array($ip,$ALLOWED_IP)) {
  $bl=false;
  foreach ($ALLOWED_IP as $val){
    if(strpos($val,'*')!==false){
      //發現有*號替代符
      $arr=array();
      $arr=explode('.', $val);
      $bl=true;
      //用於記錄迴圈檢測中是否有匹配成功的
      for ($i=0;$i<4;$i++){
        if($arr[$i]!='*'){
          //不等於* 就要進來檢測,如果為*符號替代符就不檢查
          if($arr[$i]!=$check_ip_arr[$i]){
            $bl=false;
            break;
            //終止檢查本個ip 繼續檢查下一個ip
          }
        }
      }
      //end for
      if($bl){
        //如果是true則終止匹配
        break;
      }
    }
  }
  //end foreach
  if(!$bl){
    $return=array(
       'status'=>2,
       'msg'=>'該IP無許可權存取',
       'data'=>$ip
       );
    echo json_encode($return);
    exit();
  }
}
以上就是php怎麼實現限制IP存取的詳細內容,更多請關注TW511.COM其它相關文章!