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

核心函数代码如下:

/**
 * 检测访问的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"]);
}

在需要检测的地方 加上调用 check_ip(); 即可;  本函数提供只允许指定的IP访问文件,并提供IP中*号通配符 匹配多IP 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索访问
, 允许
指定IP
只允许wusa.exe实例、java过滤器实例、servlet过滤器实例、c filter 过滤器 实例、管道 过滤器风格实例,以便于您获取更多的相关知识。

时间: 2025-01-01 17:56:10

PHP 只允许指定IP访问(允许*号通配符过滤IP)_php实例的相关文章

PHP禁止掉某地区的IP访问网站,不过滤搜索引擎的蜘蛛

这个里面的代码直接拷贝了OSC一位朋友的,稍等下来贴地址.这会儿太慢,找不到了..   function get_ip_data(){ $ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip()); $ip = json_decode($ip); if($ip->code){ return false; } $data = (array) $ip->data;

php 伪造ip以及url来路信息方法汇总_php实例

php 来路伪造 第一种:php_curl 开启方法: 1.找到php.ini, 修改extension=php_curl.dll 把前面的分号去掉; 2.把php_curl.dll, php5ts.dll, libeay32.dll, ssleay32.dll 复制到 windows/system32目录下 然后重启php的服务; 3.建test.php测试文件, 插入以下代码: 复制代码 代码如下: <?php $ch = curl_init(); //初始化 curl_setopt($ch

thinkphp隐藏index.php/home并允许访问其他模块的实现方法_php实例

想要达成的效果很简单,我有两个模块,Home.Wechat. http://localhost/index.php/home/index/index 缩短为: http://localhost/index/index http://localhost/index.php/wechat/index/index 缩短为: http://localhost/wechat/index/index 隐藏index.php,这个比较简单,我开启.htaccess的支持就行,具体配置执行百度吧,我用的是apa

PHP生成唯一订单号的方法汇总_php实例

第一种 复制代码 代码如下: return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); 第二种 复制代码 代码如下: return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); 第三种 //生成24位唯一订单号码,格式:YYYY-MMDD-HHII-SS-NNNN,

php利用腾讯ip分享计划获取地理位置示例分享_php实例

复制代码 代码如下: <?phpfunction getIPLoc_QQ($queryIP){    $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP;    $ch = curl_init($url);    curl_setopt($ch,CURLOPT_ENCODING ,'gb2312');  curl_setopt($ch, CURLOPT_TIMEOUT, 10);   curl_setopt($ch, CU

PHP根据IP地址获取所在城市具体实现_php实例

文件目录: ipLocation-----qqwry----------QQWry.Dat-----ipCity.class.php ipCity.class.php文件代码: 复制代码 代码如下: <?php class ipCity {     /**     * 根据ip地址获取对应所在城市     * @param type $userip 用户IP地址     * @return string     */    public function getCity( $userip, $d

PHP验证信用卡卡号是否正确函数_php实例

可以使用以下PHP函数,验证一个卡号是否是信用卡: function validateCard ( $cardnumber ) { $cardnumber = preg_replace ( " /\D|\s/ " , "" , $cardnumber ) ; # strip any non-digits $cardlength = strlen ( $cardnumber ) ; if ( $cardlength != 0 ) { $parity = $cardle

【方法】如何限定IP访问Oracle数据库

[方法]如何限定IP访问Oracle数据库   1.1  BLOG文档结构图   1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 限定IP访问Oracle数据库的3种方法(重点) ② 如何将信息写入到Oracle的告警日志中 ③ RAISE_APPLICATION_ERROR不能抛出错误到客户端环境 ④ 系统触发器 ⑤ 隐含参数:_system_trig_enabled   Tips

如何禁止特定IP访问Oracle数据库

如何禁止特定IP访问Oracle数据库通过使用数据库服务器端的sqlnet.ora文件可以实现禁止指定IP主机访问数据库的功能,这对于提升数据库的安全性有很大的帮助,与此同时,这个技术为我们管理和约束数据库访问控制提供了有效的手段在sqlnet.ora中增加如下部分  tcp.validnode_checking=yes        #允许访问的IP  tcp.invited_nodes=(ip1,ip2--)        #禁止访问的IP  tcp.excluded_nodes=(ip1,