reka1Medlem sedan sep. 2001650 inlägg Jag håller på att försöka skapa ett perl-skript som ska hämta ip-nummer från logfilen till Apache.
Den ska också filtrera bort de älsta ip-numren ifall samma ip dyker upp flera gånger i rad.
Men som det ser ut nu så skriver den inte ut ett smack, det händer ingenting när jag kör programmet.
Nån som ser vad problemet ligger?
#!/usr/bin/perl
open (LOG, "/usr/local/apache/log/access_log");
while ($logline = LOG) {
$logline = /^(\[.0-9\]+)/;
$ip = $1;
if ($ip != $previp) {
print "$ip\\n";
}
$previp = $ip;
}
close (LOG);
exit;
JojoxxMedlem sedan juni 20004 308 inlägg Du har glömt <> runt LOG i while ($logline = <LOG>) { och måsvingen i $logline =~ /^([.0-9]+)/;
Sen kan du kolla så att du har läsrättigheter till loggfilen och att IP't ligger först på varje rad.
reka1Medlem sedan sep. 2001650 inlägg Tackar för svar! Dessvärre blev det ingen skillnad efter dina förändringar.
Och logfilen har 777 nu under utvecklingsfasen o den är inte tom.
Som sagt så ska man se vilket ip-nummer som läst webbplatsen samt det datum det skett. Om flera anrop till sidan skett vid samma tidpunkt från samma ip-nummer ska bara det första anropet visas i sammanställningen.
JojoxxMedlem sedan juni 20004 308 inlägg Har du konfigurerat Apache så att ip't ligger först i varje rad? "^" i ditt regexp talar om detta. Sen bör du byta ut "!=" (numerically not equal" till "ne" (stringwise not equal). Annars fungerar din kod när jag kör den.