• Авторизация


Простецкий анализатор лога апача 16-04-2014 12:46 к комментариям - к полной версии - понравилось!


Скриптик, который смотрит сколько было разных ip-адресов за сутки. Основная мутотень была с регулярными выражениями перла, вопросы жадности и проч.


#!/usr/bin/perl
open(FH,"<","access_log");
$unique=1; #каждый адрес считаем уникальным, пока обратное не доказано
while() #просматриваем файл лога
{
($ip,$rem)=split(/- -/,$_); #вычленяем айпишник и остаток
$rem=~m/\[.+\]/;
$datetime = $&;#вытаскиваем дату и время

$datetime=~m/\[(.+?):/;
$date = $1;#вытаскиваем дату, на время забиваем (потом может пригодится, можно переделать)
$date =~s/\// /g;#меняем в дате косую черту на пробелы
if($date!=$prevdate)#если дата изменилась, то делаем следующее
{
print "$#arr\n"; #печатаем, скоко было адресов в предыдущий день
print "******* $date *********\n"; #печатаем дату
$prevdate=$date;#приравниваем значения
$unuque=1;#адреса снова уникальны, ведь новый день
$ip_u=0;#обнуляем уник. адрес
@arr=0;#обнуляем массив адресов
}

if($ip != $ip_u) #если попался другой адрес
{
$ip_u=$ip;
foreach(@arr) #просматриваем массив уникальных адресов
{
$unique=0 if($ip_u == $_) #и если оно там было, то он не уникальный
}

if($unique)#если адрес уникален
{
push @arr,$ip_u ;#заносим в массив
print "$ip_u\n"; #и печатаем
}
$unique=1;#снова считаем, что попадется уникальный адрес
}

}
print "$#arr\n";#печатаем число адресов за последний (сегодняшний) день
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Простецкий анализатор лога апача | Affrikan - Дневник Affrikan | Лента друзей Affrikan / Полная версия Добавить в друзья Страницы: раньше»