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一些服务器端特性的配置加强php的安全
Oct 09 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
php生成二维码
Aug 10 PHP
php编程每天必学之验证码
Mar 03 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
ThinkPHP中session函数详解
Sep 14 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 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正则表达式之定界符和原子介绍
2012/10/05 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
Python实现建立SSH连接的方法
2015/06/03 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
理解python中生成器用法
2017/12/20 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
学习自我鉴定
2014/02/01 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
python 实现图片特效处理
2022/04/03 Python
nginx rewrite功能使用场景分析
2022/05/30 Servers
python中validators库的使用方法详解
2022/09/23 Python