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 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
php引用地址改变变量值的问题
Mar 23 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 PHP
PHP中余数、取余的妙用
Jun 29 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
php实现留言板功能(代码详解)
Mar 28 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
php实现的AES加密类定义与用法示例
Jan 29 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 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中类的继承和用法实例分析
2016/05/24 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
python异常和文件处理机制详解
2016/07/19 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
python opencv读mp4视频的实例
2018/12/07 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
建筑行业的大学生自我评价
2013/12/08 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技