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 分页原理分析,大家可以看看
Dec 21 PHP
PHP编码规范的深入探讨
Jun 06 PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
php导出CSV抽象类实例
Sep 24 PHP
初识PHP
Sep 28 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
thinkPHP事务操作简单案例分析
Oct 17 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脚本的10个技巧(5)
2006/10/09 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python列表的常用操作方法小结
2016/05/21 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
python 实现IP子网计算
2021/02/18 Python
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
幼儿园见习报告
2014/10/30 职场文书
获奖感言范文
2015/07/31 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
初中历史教学反思
2016/02/19 职场文书
angular异步验证器防抖实例详解
2022/03/31 Javascript