PHP 只允許指定IP訪問(wèn)(允許*號(hào)通配符過(guò)濾IP)
核心函數(shù)代碼如下:
/**
* 檢測(cè)訪問(wèn)的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);//要檢測(cè)的ip拆分成數(shù)組
#限制IP
if(!in_array($IP,$ALLOWED_IP)) {
foreach ($ALLOWED_IP as $val){
if(strpos($val,'*')!==false){//發(fā)現(xiàn)有*號(hào)替代符
$arr=array();//
$arr=explode('.', $val);
$bl=true;//用于記錄循環(huán)檢測(cè)中是否有匹配成功的
for($i=0;$i<4;$i++){
if($arr[$i]!='*'){//不等于* 就要進(jìn)來(lái)檢測(cè),如果為*符號(hào)替代符就不檢查
if($arr[$i]!=$check_ip_arr[$i]){
$bl=false;
break;//終止檢查本個(gè)ip 繼續(xù)檢查下一個(gè)ip
}
}
}//end for
if($bl){//如果是true則找到有一個(gè)匹配成功的就返回
return;
die;
}
}
}//end foreach
header('HTTP/1.1 403 Forbidden');
echo "Access forbidden";
die;
}
}
* 獲得訪問(wèn)的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"]);
}
在需要檢測(cè)的地方 加上調(diào)用 check_ip(); 即可; 本函數(shù)提供只允許指定的IP訪問(wèn)文件,并提供IP中*號(hào)通配符 匹配多IP
- 用php代碼限制國(guó)內(nèi)IP訪問(wèn)我們網(wǎng)站
- PHP實(shí)現(xiàn)的限制IP投票程序IP來(lái)源分析
- php限制ip地址范圍的方法
- 用php來(lái)限制每個(gè)ip每天瀏覽頁(yè)面數(shù)量的實(shí)現(xiàn)思路
- php中限制ip段訪問(wèn)、禁止ip提交表單的代碼分享
- PHP中限制IP段訪問(wèn)、禁止IP提交表單的代碼
- php IP及IP段進(jìn)行訪問(wèn)限制的代碼
- 如何限制訪問(wèn)者的ip(PHPBB的代碼)
- 簡(jiǎn)單實(shí)現(xiàn)限定phpmyadmin訪問(wèn)ip的方法
- PHP禁止個(gè)別IP訪問(wèn)網(wǎng)站
- 禁止IP訪問(wèn)網(wǎng)站的多種方法分享(linux,php,nginx,apache)
- PHP實(shí)現(xiàn)限制IP訪問(wèn)的方法
相關(guān)文章
php ajax數(shù)據(jù)傳輸和響應(yīng)方法
今天小編就為大家分享一篇php ajax數(shù)據(jù)傳輸和響應(yīng)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
laravel 去掉index.php偽靜態(tài)的操作方法
今天小編就為大家分享一篇laravel 去掉index.php偽靜態(tài)的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
php使用get和post傳遞數(shù)據(jù)出現(xiàn)414?Request-URI?Too?Large的原因分析及解決方案
Request-URI Too Large(請(qǐng)求URI過(guò)長(zhǎng))是一個(gè)HTTP錯(cuò)誤狀態(tài)碼,表示所發(fā)送的HTTP請(qǐng)求中的URI(統(tǒng)一資源標(biāo)識(shí)符)長(zhǎng)度超過(guò)了服務(wù)器能夠處理的限制,這篇文章主要介紹了php使用get和post傳遞數(shù)據(jù)出現(xiàn)414?Request-URI Too?Large的解決方案,需要的朋友可以參考下2023-08-08
Thinkphp5框架實(shí)現(xiàn)獲取數(shù)據(jù)庫(kù)數(shù)據(jù)到視圖的方法
這篇文章主要介紹了Thinkphp5框架實(shí)現(xiàn)獲取數(shù)據(jù)庫(kù)數(shù)據(jù)到視圖的方法,涉及thinkPHP5數(shù)據(jù)庫(kù)配置、讀取、模型操作及視圖調(diào)用相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解
這篇文章主要介紹了從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記,結(jié)合圖文形式詳細(xì)分析了thinkPHP3.2.3框架開發(fā)過(guò)渡到thinkPHP5.0框架的區(qū)別與改進(jìn)方法,需要的朋友可以參考下2019-04-04
PHP數(shù)據(jù)庫(kù)鏈接類(PDO+Access)實(shí)例分享
這篇文章主要介紹了PHP數(shù)據(jù)庫(kù)鏈接類(PDO+Access),有需要的朋友可以參考一下2013-12-12

