public static function setBlockLists() { $localCache = new _FileCache('blacklistmonitor-Utilities-BlockLists', 60); $cacheKey = 'bl'; $cacheData = $localCache->get($cacheKey); if ($cacheData !== false) { if (isset($cacheData['domains']) && isset($cacheData['ips'])) { self::$domainBlacklists = $cacheData['domains']; self::$ipBlacklists = $cacheData['ips']; return true; } } $mysql = new _MySQL(); $mysql->connect(Setup::$connectionArray); $sql = "select host,monitorType from blockLists where isActive = '1';"; $rs = $mysql->runQuery($sql); $cacheData['domains'] = array(); $cacheData['ips'] = array(); while ($row = mysqli_fetch_array($rs, MYSQL_ASSOC)) { if ($row['monitorType'] == 'ip') { $cacheData['ips'][] = $row['host']; } else { $cacheData['domains'][] = $row['host']; } } $mysql->close(); $localCache->set($cacheKey, $cacheData); self::$domainBlacklists = $cacheData['domains']; self::$ipBlacklists = $cacheData['ips']; return false; }
$searchSQL .= " and isBlocked = 1 "; break; case 'clean': $searchSQL .= " and isBlocked = 0 "; break; case 'all': default: } $rs = $mysql->runQuery("\n\t\t\tselect ipDomain,isBlocked,rDNS,status,lastStatusChangeTime,lastUpdate\n\t\t\tfrom monitors\n\t\t\twhere 1=1 {$searchSQL}"); $result['status'] = 'success'; $result['result'] = array(); while ($row = mysqli_fetch_array($rs, MYSQL_ASSOC)) { $result['result'][] = array('host' => $row['ipDomain'], 'isBlocked' => $row['isBlocked'], 'dns' => $row['rDNS'], 'status' => unserialize($row['status']), 'lastChanged' => $row['lastStatusChangeTime'], 'lastChecked' => $row['lastUpdate']); } $mysql->close(); $localCache->set($cacheKey, $result); break; default: $result['status'] = 'no such method'; } output(); function output($data = false) { global $result; if ($data !== false) { echo json_encode($data); } else { echo json_encode($result); } exit; }