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();
                }
            }
    
        }
    

      

  • 相关阅读:
    四十四 常用内建模块 struct
    四十三 常用内建模块 base64
    Django Haystack 全文检索与关键词高亮
    python实现简单tftp(基于udp)
    多线程socket UDP收发数据
    Python 线程复习
    python 进程复习
    python pdb 调试
    Linux 复习
    Django 博客
  • 原文地址:https://www.cnblogs.com/peteremperor/p/10917571.html
Copyright © 2011-2022 走看看