www.adminn.cn
站长正能量分享网!

PHP 只允许指定IP访问(允许*号通配符过滤IP)

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

今天有朋友问我如何只允许指定IP访问,默认禁止其它ip访问,脚本之家小编以前分享的是如何限制指定ip访问,这里正好分享下,需要的朋友可以参考下

核心函数代码如下:

  1. /** 
  2.  * 检测访问的ip是否为规定的允许的ip 
  3.  * Enter description here … 
  4.  */ 
  5. function check_ip(){ 
  6.     $ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49'); 
  7.     $IP=getIP(); 
  8.     $check_ip_arrexplode('.',$IP);//要检测的ip拆分成数组 
  9.     #限制IP 
  10.     if(!in_array($IP,$ALLOWED_IP)) { 
  11.         foreach ($ALLOWED_IP as $val){ 
  12.           if(strpos($val,'*')!==false){//发现有*号替代符 
  13.              $arr=array();// 
  14.              $arr=explode('.'$val); 
  15.              $bl=true;//用于记录循环检测中是否有匹配成功的 
  16.              for($i=0;$i<4;$i++){ 
  17.                 if($arr[$i]!='*'){//不等于* 就要进来检测,如果为*符号替代符就不检查 
  18.                     if($arr[$i]!=$check_ip_arr[$i]){ 
  19.                         $bl=false; 
  20.                         break;//终止检查本个ip 继续检查下一个ip 
  21.                     } 
  22.                 } 
  23.              }//end for  
  24.              if($bl){//如果是true则找到有一个匹配成功的就返回 
  25.                 return
  26.                 die
  27.              } 
  28.           } 
  29.         }//end foreach 
  30.         header('HTTP/1.1 403 Forbidden'); 
  31.         echo "Access forbidden"
  32.         die
  33.     } 
  34. * 获得访问的IP  
  35. * Enter description here …  
  36. */  
  37. function getIP() {  
  38.   return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]  
  39.   :(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"]  
  40.   :$_SERVER["REMOTE_ADDR"]);  

在需要检测的地方 加上调用 check_ip(); 即可;  本函数提供只允许指定的IP访问文件,并提供IP中*号通配符 匹配多IP 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP 只允许指定IP访问(允许*号通配符过滤IP)》
文章链接:https://www.adminn.cn/news/8876.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏