Автор Тема: Сбор инфы...  (Прочитано 3219 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Сбор инфы...
« : 05 Апреля 2002, 12:08:32 »
Вот строчки в основном скрипте, которые, по идеи читают лог:
# Читалка лога
sub readlog() {
my $from = @_[0];
my $to = @_[1];
$rr = 0;
my $notend = 1;
open(LOG, "/home/g/glebushka.hut.ru/WWW/loghot/$login.log");
while() {
  ($tip, $thost, $ttime, $turl, $tref, $tua, $fake, $tad, $tsite, $tuid, $fake) = split(/;;/);
  if($ttime >= $from) { if($ttime <= $to) {
    $rr++;
    $rip{$rr} = $tip;
    $rhost{$rr} = $thost;
    $rtime{$rr} = $ttime;
    $rurl{$rr} = $turl;

    $tref =~ s/\\+/ /g;
    $tref =~ s/%(..)/pack("c",hex($1))/ge;
    $rref{$rr} = $tref;

    $rua{$rr} = $tua;
    $rad{$rr} = $tad;
    $rsite{$rr} = $tsite;
    $ruid{$rr} = $tuid;
  } }
}
close(LOG);
}
Ну вроде всё правильно?
Вот скрипт который этот лог записывает:
require("cookie.lib");

# put the QUERY_STRING into a variable
$qs = $ENV{\'QUERY_STRING\'};
# split it up into an array by the \'&\' character
@qs = split(/&/,$qs);
#
for($i = 0;$i <= $#qs; $i++)
  {
  # convert the plus chars to spaces
  $qs[$i] =~ s/\\+/ /g;
  # convert the hex characters
  $qs[$i] =~ s/%(..)/pack("c",hex($1))/ge;
  # split each one into name and value
  ($name, $value) = split(/=/,$qs[$i],2);
  # create the associative element
  $qs{$name} = $value;
  }

$ip = $ENV{REMOTE_ADDR};
$hostname = $ENV{REMOTE_HOST};
$timedate = time();
$URL = $ENV{HTTP_REFERER};
$referer = $qs{r};
$useragent = $ENV{HTTP_USER_AGENT};
$ad = $qs{a};
$action = "0";
$site = $qs{"s"};
$sc = $qs{"sc"};

if($sc eq "" || $sc eq "undefined") {
  if(&GetCookies("uid")==1) {
    $sc = $Cookies{"uid"};
  } else {
    $sc = time().$URL;
    SetCookies("uid", $sc);
  }
}

if($qs{"site"} =~ /!\\@#\\$\\%^&()\\[\\]{}\'"\\\\\\/;<>`/g) {
print "General Fault!";
} else {
open(STT, ">>/home/g/glebushka.hut.ru/WWW/loghot/$site.log");
print STT "$ip;;$hostname;;$timedate;;$URL;;$referer;;$useragent;;$ad;;$action;;$site;;$sc;;\\n";
close(STT);
}

print "Content-type: image/gif\\n\\n";
Тоже вроде звучит убедительно:)
И вот наконец код, который вставляю в саму страницу:



Уф... Скока кода... И весь кривой... Что делать... Как сделать так чтобы этот мусор заработал?
Ну к чему все это, лучше бы водки выпили...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Анализ логов apache
« Ответ #1 : 05 Апреля 2002, 12:30:26 »
Цитировать
Уф... Скока кода... И весь кривой...

Называется угадай мелодию...
Что ругается и на что?

ЗЫ. Я у тебя тут еще пары подпрограмм не нашел. Они есть?
The documentations is your friend

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Анализ логов apache
« Ответ #2 : 05 Апреля 2002, 12:36:59 »
Цитировать
Называется угадай мелодию...
Что ругается и на что?

Гы. Самое интересное, что вообще не ругается, ни на что не жалуется:). МОЛЧИТ СОБАКА!!!!!!!!!!!!!!! И НИЧЕГО НЕ ДЕЛАЕТ!!!!!!!
Дело в том что скарипт trk.cgi, при вызове с параметрами должен записывать инфу в файл, печально но факт, как был размер файла "0" так и остался):
Цитировать
ЗЫ. Я у тебя тут еще пары подпрограмм не нашел. Они есть?

Скрипт trk.cgi (тот, который считывает лог) приведён полностью, без изменений, ну там первую строчку только убрал...
Код, вставляемый в страницу, тоже...
Ну а первый код - это только отрывок...
Какие подпрограммы ты не увидел?
Скажи, код напишу сюда...
Может нужен код cookie.lib?
Ну к чему все это, лучше бы водки выпили...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Анализ логов apache
« Ответ #3 : 05 Апреля 2002, 12:43:37 »
Цитировать
должен записывать инфу в файл

а права на запись есть?
Цитировать
Может нужен код cookie.lib?

нет. не нужен.
The documentations is your friend

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Анализ логов apache
« Ответ #4 : 05 Апреля 2002, 12:49:36 »
Цитировать
а права на запись есть?

Файл 1.log атрибуты 664, каталог loghot, в котором лежит файл атрибуты 668...
ЗЫ. Файл с паролями, находящийся в этом же каталоге, скрипт записывает без проблем...
Ну к чему все это, лучше бы водки выпили...

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Анализ логов apache
« Ответ #5 : 06 Апреля 2002, 03:02:41 »
open(LOG, "/home/g/glebushka.hut.ru/WWW/loghot/$login.log") or die("Открывай сам, $!");
;) думаю с этого стоило начать..
Цитировать
$tref =~ s/\\+/ /g;

а tr тут лучше смотрится и возможно быстрее

Цитировать
Файл 1.log атрибуты 664, каталог loghot, в котором лежит файл атрибуты 668...

особенно 668
 в исканиях.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28