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 相关文章推荐
IIS6的PHP最佳配置方法
Mar 19 PHP
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
Oct 31 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
PHP魔术方法的使用示例
Jun 23 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
php扩展开发入门demo示例
Sep 23 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 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
JAVA/JSP学习系列之四
2006/10/09 PHP
php牛逼的面试题分享
2013/01/18 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
Python实现周期性抓取网页内容的方法
2015/11/04 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
医院门卫岗位职责
2013/12/30 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
openstack中的rpc远程调用的方法
2021/07/09 Python