Home >Backend Development >PHP Problem >How to ban ip access in php

How to ban ip access in php

coldplay.xixi
coldplay.xixiOriginal
2020-11-04 11:20:363191browse

php method to implement prohibition of ip access: first obtain the client ip, and split the ip parameters into arrays; then record whether there is a successful match in the loop detection, if it is a [*] symbol replacement, it will not be checked and terminated Check this ip.

How to ban ip access in php

php method to ban ip access:

//获取客户端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]!=&#39;*&#39;){
          //不等于* 就要进来检测,如果为*符号替代符就不检查
          if($arr[$i]!=$check_ip_arr[$i]){
            $bl=false;
            break;
            //终止检查本个ip 继续检查下一个ip
          }
        }
      }
      //end for
      if($bl){
        //如果是true则终止匹配
        break;
      }
    }
  }
  //end foreach
  if(!$bl){
    $return=array(
       &#39;status&#39;=>2,
       &#39;msg&#39;=>&#39;该IP无权限访问&#39;,
       &#39;data&#39;=>$ip
       );
    echo json_encode($return);
    exit();
  }
}

Related free learning recommendations: php programming(video)

The above is the detailed content of How to ban ip access in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn