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 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
PHP+MySQL 手工注入语句大全 推荐
Oct 30 PHP
解析PHP中如何将数组变量写入文件
Jun 06 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
php微信支付接口开发程序
Aug 02 PHP
详细解读php的命名空间(一)
Feb 21 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
div移动 输入框不能输入的问题
2009/11/19 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
javascript动画浅析
2012/08/30 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
Python爬取读者并制作成PDF
2015/03/10 Python
Python File readlines() 使用方法
2018/03/19 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
护士实习生自我鉴定范文
2013/12/10 职场文书
优秀民警事迹材料
2014/01/29 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
报到证办理个人委托书
2014/10/06 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
主题班会开场白
2015/06/01 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android