zoukankan      html  css  js  c++  java
  • 配置定时任务只能当前服务器调用

    在定时任务所在的类的初始化方法中,添加ip判断

      protected function _initialize() {
    
            //获取访问该类的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";
    
            //允许访问的ip
            $ALLOWED_IP=array('10.66.206.65','192.168.1.5');
            
            //等待检查的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();
                }
            }
    
        }
    

      

  • 相关阅读:
    time 模块学习
    day 14 自定义模块,常用模块 time .datetime ,time 模块
    day 13 课后作业
    day 12 课后作业
    day 11课后作业
    树状数组最值
    hdu 1059 Dividing bitset 多重背包
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    最长公共子序列板/滚动 N^2
    Uva 10635
  • 原文地址:https://www.cnblogs.com/peteremperor/p/10917571.html
Copyright © 2011-2022 走看看