PHP实现限制IP访问的方法


Posted in PHP onApril 20, 2017

本文实例讲述了PHP实现限制IP访问的方法。分享给大家供大家参考,具体如下:

//获取客户端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');
//允许访问的ip
$check_ip_arr= explode('.',$ip);
//ip参数拆分成数组
if(!in_array($ip,$ALLOWED_IP)) {
  $bl=false;
  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则终止匹配
        break;
      }
    }
  }
  //end foreach
  if(!$bl){
    $return=array(
       'status'=>2,
       'msg'=>'该IP无权限访问',
       'data'=>$ip
       );
    echo json_encode($return);
    exit();
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
Jul 22 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
yii2缓存Caching基本用法示例
Jul 18 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 23 PHP
PHP简单读取xml文件的方法示例
Apr 20 #PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 #PHP
PHP实现根据数组的值进行分组的方法
Apr 20 #PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 #PHP
php简单随机字符串生成方法示例
Apr 19 #PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
Apr 19 #PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 #PHP
You might like
php中目录,文件操作详谈
2007/03/19 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
PHP中的session安全吗?
2016/01/22 PHP
php文件上传类完整实例
2016/05/14 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
Cookie 注入是怎样产生的
2009/04/08 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
python统计cpu利用率的方法
2015/06/02 Python
Python实现简单多线程任务队列
2016/02/27 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
Python实现时间序列可视化的方法
2019/08/06 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
土木工程专业自荐信
2013/10/04 职场文书
快餐公司创业计划书
2014/04/29 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
员工升职自荐信
2015/03/27 职场文书
python开发制作好看的时钟效果
2022/05/02 Python