本文實(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ì)有所幫助。
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。