溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP怎么實(shí)現(xiàn)只允許指定IP訪問(wèn)

發(fā)布時(shí)間:2021-09-03 21:52:02 來(lái)源:億速云 閱讀:204 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“PHP怎么實(shí)現(xiàn)只允許指定IP訪問(wèn)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“PHP怎么實(shí)現(xiàn)只允許指定IP訪問(wèn)”吧!

核心函數(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怎么實(shí)現(xiàn)只允許指定IP訪問(wèn)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)PHP怎么實(shí)現(xiàn)只允許指定IP訪問(wèn)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI