Небольшой php скрипт, для формирования списка спам IP адресов. Данные получает из /var/log/messages (FLOOD). Скрипт формирует список из полей SRC и сохраняет в файл /etc/ban.txt
Формирование Ban листа по данным из /var/log/messages с пометкой FLOOD
29.11.2016
<?php
define('FILE_IN', '/var/log/messages');
define('FILE_OUT', '/etc/ban.txt');
$aLines = file(FILE_IN);
$aIP = array();
foreach($aLines as $sLines)
{
if(strpos($sLines, 'FLOOD') !== FALSE)
{
$sPattern = '|SRC=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|';
preg_match_all($sPattern, $sLines, $aMatches, PREG_SET_ORDER);
$aIP[] = $aMatches[0][1];
}
}
$aIP = array_unique($aIP);
file_put_contents(FILE_OUT, file_get_contents(FILE_OUT)."\n".implode("\n",$aIP));