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


Posted in PHP onJuly 08, 2014

核心函数代码如下:

/**
 * 检测访问的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 

PHP 相关文章推荐
PHP5 安装方法
Oct 09 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php中CI操作多个数据库的代码
Jul 05 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
PHP文件缓存类示例分享
Jan 30 PHP
php使用GD实现颜色渐变实例
Jun 02 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
Laravel 集成 Geetest验证码的方法
May 14 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 #PHP
php之Smarty模板使用方法示例详解
Jul 08 #PHP
高性能PHP框架Symfony2经典入门教程
Jul 08 #PHP
Thinkphp的volist标签嵌套循环使用教程
Jul 08 #PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 #PHP
PHP的error_reporting错误级别变量对照表
Jul 08 #PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 #PHP
You might like
PHP文件操作实现代码分享
2011/09/01 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
jQuery Ajax文件上传(php)
2009/06/16 Javascript
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python抓取文件夹的所有文件
2018/02/27 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
python实现扫雷游戏的示例
2020/10/20 Python
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
员工考核管理制度
2014/02/02 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
上课不认真检讨书
2014/09/17 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python