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缓存技术详细总结
Aug 07 PHP
php获取域名的google收录示例
Mar 24 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
php命令行用法入门实例教程
Oct 27 PHP
PHP操作MySQL事务实例
Nov 05 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
PHP+Ajax简单get验证操作示例
Mar 02 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 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计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
详解python数据结构和算法
2019/04/18 Python
python 实现让字典的value 成为列表
2019/12/16 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
python源文件的字符编码知识点详解
2021/03/04 Python
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
简单英文演讲稿
2014/01/01 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫
KVM基础命令详解
2022/04/30 Servers