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