File Manager

Current Directory: /home/astoriaah/www/old15/plugins/system/admintools/feature
Viewing File: /home/astoriaah/www/old15/plugins/system/admintools/feature/autoipfiltering.php
<?php /** * @package AdminTools * @copyright Copyright (c)2010-2015 Nicholas K. Dionysopoulos * @license GNU General Public License version 3, or later */ defined('_JEXEC') or die; class AtsystemFeatureAutoipfiltering extends AtsystemFeatureAbstract { protected $loadOrder = 10; /** * Blocks visitors coming from an automatically banned IP. */ public function onAfterInitialise() { // Get the visitor's IP address $ip = AtsystemUtilFilter::getIp(); // Let's get a list of blocked IP ranges $db = $this->db; $sql = $db->getQuery(true) ->select('*') ->from($db->qn('#__admintools_ipautoban')) ->where($db->qn('ip') . ' = ' . $db->q($ip)); $db->setQuery($sql); try { $record = $db->loadObject(); } catch (Exception $e) { $record = null; } if (empty($record)) { return; } // Is this record expired? JLoader::import('joomla.utilities.date'); $jNow = new JDate(); $jUntil = new JDate($record->until); $now = $jNow->toUnix(); $until = $jUntil->toUnix(); if ($now > $until) { // Ban expired. Move the entry and allow the request to proceed. $history = clone $record; $history->id = null; try { $db->insertObject('#__admintools_ipautobanhistory', $history, 'id'); } catch (Exception $e) { // Oops... } $sql = $db->getQuery(true) ->delete($db->qn('#__admintools_ipautoban')) ->where($db->qn('ip') . ' = ' . $db->q($ip)); $db->setQuery($sql); try { $db->execute(); } catch (Exception $e) { // Oops... } return; } // Move old entries - The fastest way is to create a INSERT with a SELECT statement $sql = 'INSERT INTO ' . $db->qn('#__admintools_ipautobanhistory') . ' (' . $db->qn('id') . ', ' . $db->qn('ip') . ', ' . $db->qn('reason') . ', ' . $db->qn('until') . ')' . ' SELECT NULL, ' . $db->qn('ip') . ', ' . $db->qn('reason') . ', ' . $db->qn('until') . ' FROM ' . $db->qn('#__admintools_ipautoban') . ' WHERE ' . $db->qn('until') . ' < ' . $db->q($jNow->toSql()); try { $r = $db->setQuery($sql)->execute(); } catch (Exception $e) { // Oops... } $sql = $db->getQuery(true) ->delete($db->qn('#__admintools_ipautoban')) ->where($db->qn('until') . ' < ' . $db->q($jNow->toSql())); $db->setQuery($sql); try { $db->execute(); } catch (Exception $e) { // Oops... } @ob_end_clean(); header("HTTP/1.0 403 Forbidden"); $spammerMessage = $this->cparams->getValue('spammermessage', ''); $spammerMessage = str_replace('[IP]', $ip, $spammerMessage); echo $spammerMessage; $this->app->close(); } }