千家信息网

PHP怎么实现只允许指定IP访问

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要讲解了"PHP怎么实现只允许指定IP访问",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP怎么实现只允许指定IP访问"吧!核心函数代码如
千家信息网最后更新 2025年01月17日PHP怎么实现只允许指定IP访问

这篇文章主要讲解了"PHP怎么实现只允许指定IP访问",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP怎么实现只允许指定IP访问"吧!

核心函数代码如下:

/** * 检测访问的ip是否为规定的允许的ip * Enter description here ... */function check_ip(){        $ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49');        $IP=getIP();        $check_ip_arr= explode('.',$IP);//要检测的ip拆分成数组        #限制IP        if(!in_array($IP,$ALLOWED_IP)) {                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则找到有一个匹配成功的就返回                         return;                         die;                       }                  }                }//end foreach                header('HTTP/1.1 403 Forbidden');                echo "Access forbidden";                die;        }}* 获得访问的IP * Enter description here ... */ function getIP() {   return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]   :(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"]   :$_SERVER["REMOTE_ADDR"]); }

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

感谢各位的阅读,以上就是"PHP怎么实现只允许指定IP访问"的内容了,经过本文的学习后,相信大家对PHP怎么实现只允许指定IP访问这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0