Пример #1
0
 public static function get_cache($cache_name)
 {
     $file_path = PATH_DATA . '/cache/' . $cache_name . '.php';
     if (file_exists($file_path)) {
         $data = unserialize(mod_file::read($file_path));
         //修复清空缓存后分类管理没有数据的bug
         if ($data != NULL) {
             return $data;
         }
     }
     return false;
 }
Пример #2
0
 public static function fence($yl_cc)
 {
     $c_agentip = 0;
     (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) || !empty($_SERVER['HTTP_CLIENT_IP'])) && ($c_agentip = 1);
     $timestamp = time();
     $onlineip = mod_defend::get_ip();
     $c_banedip = mod_file::read(PATH_DATA . '/log/banip.txt');
     //被banip文件
     if ($c_ipoffset = strpos($c_banedip . "\n", "\t" . $onlineip . "\n")) {
         $c_ltt = (int) substr($c_banedip, $c_ipoffset - 10, 10);
         // 获取屏蔽的时间
         if ($timestamp - $c_ltt < 20) {
             if ($timestamp - $c_ltt > 5) {
                 mod_file::write(PATH_DATA . '/log/banip.txt', str_replace($c_ltt . "\t" . $onlineip, $timestamp . "\t" . $onlineip, $c_banedip));
             }
             exit("Turn off CC, Please refresh after 20 secs");
         } else {
             mod_file::write(PATH_DATA . '/log/banip.txt', str_replace("\n" . $c_ltt . "\t" . $onlineip, '', $c_banedip));
         }
     }
     $c_banip_a = explode("\n", $c_banedip);
     if ($c_agentip == 1 || $yl_cc == 2) {
         $c_time = 0;
         if ($c_fp = @fopen(PATH_DATA . '/data/log/ccip.txt', 'rb')) {
             flock($c_fp, LOCK_SH);
             $c_size = 27 * 500;
             fseek($c_fp, -$c_size, SEEK_END);
             while (!feof($c_fp)) {
                 $c_value = explode("\t", fgets($c_fp, 29));
                 if ($timestamp - $c_value[0] < 10 && trim($c_value[1]) == $onlineip) {
                     $c_time++;
                     if ($c_time > 15) {
                         break;
                     }
                 }
             }
             fclose($c_fp);
         }
         if ($c_time > 15) {
             array_push($c_banip_a, $timestamp . "\t" . $onlineip);
             $c_banip_a = array_slice($c_banip_a, -150);
             mod_file::write(PATH_DATA . '/log/banip.txt', implode("\n", $c_banip_a));
             exit('Turn off CC');
         }
         if (@filesize(PATH_DATA . '/log/ccip.txt') > 27 * 1000) {
             mod_file::rm(PATH_DATA . '/log/ccip.txt');
         }
         mod_file::write(PATH_DATA . '/log/ccip.txt', $timestamp . "\t" . $onlineip . "\n", 'ab');
     }
     if (false == self::post_verify()) {
         exit('undefined_action');
     }
 }