Ich habe einen Apache-Proxy laufen, der fleißig eine log-datei mitschreibt. Diese möchte ich nun mit Perl auswerten. also es sollen die Ip-Adressen und der angefallene Traffic
für jede dieser angezeigt werden.
Mein erster Test war dieser:
die Proxydatei ist in der Art also eine Zeile davon:
#!usr/bin/perl
my $IPPfad = "./access_test.log"; # Der Pfad zu meiner Logdatei
open(FILEHAND,"< $IPPfad") || die("Konnte Datei nicht öffnen. Fehlerbeschreibung: $!"); #Dateihandler wird zum lesen geöffnet, und wenn die Datei nicht geöffnet werden kann wird die Fehlermeldung vom System ausgegeben.
my @fileinhalt = ; # der inhalt der Logdatei wird in das Arrays fileinhalt gelesen und dabe entspricht eine Zeile einem element des Arrays
close(FILEHAND); #Hier wird der Dateihandler wieder geschlossen
foreach $zeile (@fileinhalt) {
@splzeile = split(/\ +/, $zeile); # An " " trennen
print $splzeile[2] . "\n"; # Gibt die Zeile der IP's aus
}
Das Programm soll halt hingehen und die IP mit einer IP in einer CSV datei vergleichen und in eine neue Datei dann den Standort und die Dateigröße ablegen und jedesmal wenn dieser IP-Bereich wieder auftaucht soll aus der anfrage dann die Größe zu dem Standort hinzu addiert werden, und wenn ein neuer IP-Bereich auftaucht soll dieser automatisch in der neuen Datei hinzugefügt werden...172.16.0.4 - - [14/Feb/2012:14:56:25 +0100] "GET http://www.google.de/ HTTP/1.1" 403 420 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0) Gecko/20100101 Firefox/7.0"
diede "neue Datei" muss später dann aufbereitet werden und in Tabellenform (auch in einer CSV) dargestellt werden.
ich hoffe ihr könnt mir helfen,
hab mich bemüht so ausführlich wie möglich mein Problem zu schildern... ist sehr dringend..
Danke im Voraus