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导航下拉菜单的实现如此简单
Sep 22 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
php截取中文字符串函数实例
Feb 23 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
php mysql 封装类实例代码
Sep 18 PHP
php封装的表单验证类完整实例
Oct 19 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 PHP
Centos7安装swoole扩展操作示例
Mar 26 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中$_FILES的使用以及注意事项
2013/07/05 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
jstree的简单实例
2016/12/01 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
Vue实现导出excel表格功能
2018/03/30 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
javascript实现移动端红包雨页面
2020/06/23 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
python文件路径操作方法总结
2020/12/21 Python
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
2014年党课学习材料
2014/05/11 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
初中毕业感言300字
2015/07/31 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
Python使用Kubernetes API访问集群
2021/05/30 Python
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers
JS函数式编程实现XDM一
2022/06/16 Javascript