Visa ett inlägg
Oläst 2005-09-06, 12:15 #9
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
IP+UA är bättre i och med att det troligen inte är två personer med exakt samma version av browsern bakom ett NAT, ja. Eventuellt är det ju så ändå, men det ger ändå en bättre uppskattning.

Jag blev tvungen att koda lite själv för att testa..
log_ip_ua_month.pl
Kod:
#!/usr/bin/perl
$cnt = $fd = $ld = $pages = 0;
my %data;
$logfile=$ARGV[0];
$mymonth = $ARGV[1];
open(FO,$logfile);
while(<FO>) {
 if (/^([\d\.]+) - [\"\w\-]+ \[(\d+)\/(\w+)\/(\d{4}).*?\] \"(.*?)\" ([\d\-]+) [\d\-]+ \".*?\" \"(.*?)\"$/) {
    ($ip,$day,$month,$year,$req,$code,$ua) = ($1,$2,$3,$4,$5,$6,$7);
    if (($month eq $mymonth) 
    && ($code == 200 || $code == 302 || $code == 304) # returcode = 200|302|304
    && !($ua =~ /crawler|bot|google|slurp/i) # plocka bort alla bottar
    && ($ua =~ /Mozilla/) # bara riktiga browsers 
    && ($req =~ /\.(htm|php)/)
    ) { # bara äkta dokument
        if ($fd==0) { $fd = "$day/$month/$year"; }
        $ld = "$day/$month/$year";
        $id= "$ip$month$year$ua"; # month & year är lite överfldoiga..
        $data{$id}++;
        $pages++;
    } 
 } else { 
  $felaktiga_rader++;
 }
$cnt++;
}
close(FO);
print "Rapporterad tidsperiod, $fd - $ld\n";
print "Unika besökare: " . scalar(keys(%data)) . "\n";
print "Laddade sidor: $pages\n";
print "Felaktiga rader totalt: $felaktiga_rader\n";
syntax: ./log_ip_ua_month.pl <logfil*> <månad>
Ex: ./log_ip_ua_month.pl /usr/local/logs/minhost_access.log Aug
*Kräver att logfilen är en combined-log i Apache..

Den här koden borde göra det vi (jag) vill, registrerar laddade sidor över en specifierad månad med IP+UA som identifierare. Det stämmer inte riktigt med AWstats. Scriptet räknar lite hårdare (den identifierare mera bottar som ickeanvändare).


Kan vi spika det här scriptet som internationell standard nu så är vi överrens

Edit: tog bort lite kommentarer ur koden. Samt lade till en kommentar om loggfiler.
grazzy är inte uppkopplad   Svara med citatSvara med citat