阅读背景:

PHP 只允许指定IP访问(允许*号通配符过滤IP)

来源:互联网 

!--NEWSZW_HZH_BEGIN--

核心函数代码以下:

/**
 * 检测拜访的ip是不是为规定的许可的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拆分成数组
	#限制IP
	if(!in_array($IP,$ALLOWED_IP)) {
		foreach ($ALLOWED_IP as $val){
		  if(strpos($val,"*")!==false){//发明有*号替换符
		  	 $arr=array();//
		  	 $arr=explode(".", $val);
		  	 $bl=true;//用于记载重复检测中是不是有匹配胜利的
		  	 for($i=0;$i<4;$i++){
		  	 	if($arr[$i]!="*"){//不等于* 就要进来检测,如果为*符号替换符就不检讨
		  	 		if($arr[$i]!=$check_ip_arr[$i]){
		  	 			$bl=false;
		  	 			break;//终止检讨本个ip 持续检讨下一个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"]); 
}
/**
 * 检测拜访的ip是不




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: