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实现登陆验证码(类似条行码状)
Oct 09 PHP
建立动态的WML站点(二)
Oct 09 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
浅谈php冒泡排序
Dec 30 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 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
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
写了个监控nginx进程的Python脚本
2012/05/10 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python读取图片任意范围区域
2019/01/23 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
Python基于requests库爬取网站信息
2020/03/02 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
外语系大学生自荐信范文
2014/03/01 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
python利用while求100内的整数和方式
2021/11/07 Python