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 相关文章推荐
?生?D片??C字串
Dec 06 PHP
mysql 搜索之简单应用
Apr 27 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
php 字符转义 注意事项
May 27 PHP
PHP仿盗链代码
Jun 03 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
Jun 28 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 PHP
降低PHP Redis内存占用
Mar 23 PHP
CakePHP框架Model函数定义方法示例
Aug 04 PHP
PHP实现随机发放扑克牌
Apr 21 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截取中文字符串的问题
2006/07/12 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
网络信息管理员岗位职责
2014/01/05 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技