PHP實(shí)現(xiàn)限制IP訪(fǎng)問(wèn)的方法
本文實(shí)例講述了PHP實(shí)現(xiàn)限制IP訪(fǎng)問(wèn)的方法。分享給大家供大家參考,具體如下:
//獲取客戶(hù)端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'); //允許訪(fǎng)問(wèn)的ip $check_ip_arr= explode('.',$ip); //ip參數(shù)拆分成數(shù)組 if(!in_array($ip,$ALLOWED_IP)) { $bl=false; 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則終止匹配 break; } } } //end foreach if(!$bl){ $return=array( 'status'=>2, 'msg'=>'該IP無(wú)權(quán)限訪(fǎng)問(wèn)', 'data'=>$ip ); echo json_encode($return); exit(); } }
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php正則表達(dá)式用法總結(jié)》、《php curl用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP+redis實(shí)現(xiàn)的悲觀(guān)鎖機(jī)制示例
- PHP操作Redis常用技巧總結(jié)
- php Session存儲(chǔ)到Redis的方法
- php結(jié)合redis實(shí)現(xiàn)高并發(fā)下的搶購(gòu)、秒殺功能的實(shí)例
- PHP實(shí)現(xiàn)操作redis的封裝類(lèi)完整實(shí)例
- Linux下php安裝Redis擴(kuò)展的方法
- php中使用redis隊(duì)列操作實(shí)例代碼
- 項(xiàng)目中應(yīng)用Redis+Php的場(chǎng)景
- php利用cookie實(shí)現(xiàn)訪(fǎng)問(wèn)次數(shù)統(tǒng)計(jì)代碼
- PHP實(shí)現(xiàn)限制IP訪(fǎng)問(wèn)及提交次數(shù)的方法詳解
- 用php代碼限制國(guó)內(nèi)IP訪(fǎng)問(wèn)我們網(wǎng)站
- PHP實(shí)現(xiàn)redis限制單ip、單用戶(hù)的訪(fǎng)問(wèn)次數(shù)功能示例
相關(guān)文章
php.ini?中文版?(PHP7,PHP8)?金步國(guó)
php.ini?中文版?(PHP7,PHP8),比較適合使用php7、php8的朋友使用,需要的朋友可以參考下2023-09-09php 采集書(shū)并合成txt格式的實(shí)現(xiàn)代碼
記得上次有過(guò)一個(gè)叫采集后的處理這個(gè)就是它的升級(jí)版本 連采再處理,合成一本書(shū)txt的。2009-03-03php 中英文語(yǔ)言轉(zhuǎn)換類(lèi)代碼
突然想做個(gè)中英文的功能試一下,只是把一些常用且有規(guī)律的詞匯比如 ‘評(píng)論’ ,時(shí)間單位(幾秒幾小時(shí)前這些)可以自由的轉(zhuǎn)化。2011-08-08PHP+redis實(shí)現(xiàn)微博的拉模型案例詳解
這篇文章主要介紹了PHP+redis實(shí)現(xiàn)微博的拉模型案例,結(jié)合具體實(shí)例形式詳細(xì)分析了php+redis獲取關(guān)注人最新信息的相關(guān)原理與操作技巧,需要的朋友可以參考下2019-07-07整理的一些實(shí)用WordPress后臺(tái)MySQL操作命令
WordPress將其所有信息片段(包括文章、頁(yè)面、評(píng)論、博客鏈接、插件設(shè)置等)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中。 雖然WordPress用戶(hù)可以通過(guò)網(wǎng)站后臺(tái)編輯控制以上信息片段2013-01-01PHP 線(xiàn)程安全與非線(xiàn)程安全版本的區(qū)別深入解析
Windows版的PHP從版本5.2.1開(kāi)始有Thread Safe(線(xiàn)程安全)和None Thread Safe(NTS,非線(xiàn)程安全)之分,這兩者不同在于何處?到底應(yīng)該用哪種?這里做一個(gè)簡(jiǎn)單的介紹2013-08-08PHP如何實(shí)現(xiàn)Unicode和Utf-8編碼相互轉(zhuǎn)換
本文介紹了通過(guò)PHP實(shí)現(xiàn)一個(gè)函數(shù)可以對(duì)字符串進(jìn)行Unicode的編碼和解碼,需要的朋友可以參考下2015-07-07