PHP 只允許指定IP訪問(允許*號通配符過濾IP)
更新時間:2014年07月08日 23:50:09 投稿:mdxy-dxy
今天有朋友問我如何只允許指定IP訪問,默認禁止其它ip訪問,腳本之家小編以前分享的是如何限制指定ip訪問,這里正好分享下,需要的朋友可以參考下
核心函數(shù)代碼如下:
/** * 檢測訪問的ip是否為規(guī)定的允許的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拆分成數(shù)組 #限制IP if(!in_array($IP,$ALLOWED_IP)) { foreach ($ALLOWED_IP as $val){ if(strpos($val,'*')!==false){//發(fā)現(xiàn)有*號替代符 $arr=array();// $arr=explode('.', $val); $bl=true;//用于記錄循環(huán)檢測中是否有匹配成功的 for($i=0;$i<4;$i++){ if($arr[$i]!='*'){//不等于* 就要進來檢測,如果為*符號替代符就不檢查 if($arr[$i]!=$check_ip_arr[$i]){ $bl=false; break;//終止檢查本個ip 繼續(xù)檢查下一個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(); 即可; 本函數(shù)提供只允許指定的IP訪問文件,并提供IP中*號通配符 匹配多IP
您可能感興趣的文章:
相關文章
laravel 去掉index.php偽靜態(tài)的操作方法
今天小編就為大家分享一篇laravel 去掉index.php偽靜態(tài)的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10php使用get和post傳遞數(shù)據(jù)出現(xiàn)414?Request-URI?Too?Large的原因分析及解決方案
Request-URI Too Large(請求URI過長)是一個HTTP錯誤狀態(tài)碼,表示所發(fā)送的HTTP請求中的URI(統(tǒng)一資源標識符)長度超過了服務器能夠處理的限制,這篇文章主要介紹了php使用get和post傳遞數(shù)據(jù)出現(xiàn)414?Request-URI Too?Large的解決方案,需要的朋友可以參考下2023-08-08Thinkphp5框架實現(xiàn)獲取數(shù)據(jù)庫數(shù)據(jù)到視圖的方法
這篇文章主要介紹了Thinkphp5框架實現(xiàn)獲取數(shù)據(jù)庫數(shù)據(jù)到視圖的方法,涉及thinkPHP5數(shù)據(jù)庫配置、讀取、模型操作及視圖調用相關操作技巧,需要的朋友可以參考下2019-08-08從ThinkPHP3.2.3過渡到ThinkPHP5.0學習筆記圖文詳解
這篇文章主要介紹了從ThinkPHP3.2.3過渡到ThinkPHP5.0學習筆記,結合圖文形式詳細分析了thinkPHP3.2.3框架開發(fā)過渡到thinkPHP5.0框架的區(qū)別與改進方法,需要的朋友可以參考下2019-04-04PHP數(shù)據(jù)庫鏈接類(PDO+Access)實例分享
這篇文章主要介紹了PHP數(shù)據(jù)庫鏈接類(PDO+Access),有需要的朋友可以參考一下2013-12-12