[Thread Prev][Thread Next]   >Date Index >Thread Index

Re: spam-script && use strict

Bernhard Schmalhofer - Sat Dec 08 17:47:57 2007


Stefan Bauer schrieb:
Jörg Meltzer schrieb:
Der 'score' für $alias wird nicht inkrementiert sondern nur auf 1 gesetzt.
Es ist für mich unverständlich, was %benutzer dann eigentlich speichert.

Hallo Jörg,

danke für die schnelle Antwort. Ich hatte einen Denkfehler in meinem
Sscript. Ich versuche damit eine kleine Übersicht zu erstellen,
wieviel Mails für welchen Benutzer (alias) mit greylist rejected
wurden. Zwar nicht sonderlich aussagekräftig, aber eine gute Übung für
mich als Anfänger.

Anbei meine überarbeitete Version:

#!/usr/bin/perl -w
use strict;
unless (@ARGV){ print "Aufruf mit ./spam.pl Log-Datei.log"};
open SPAM, $ARGV[0]     or die $!;
my @spam = <SPAM>;
my %benutzer = ();
foreach my $zeile (@spam) {
if ($zeile =~ m/.html; from=<(.*)> to=<(.*)(\@.*)> proto/) {
werte_sammeln($2);
}
}
for my $name (keys %benutzer) {
print "Fuer Benutzer: $name wurden $benutzer{$name}{'score'}Mails
greylisted.\n";
}
sub werte_sammeln {
my $alias  = shift;
$benutzer{$alias}{'score'} = 0;
$benutzer{$alias}{'score'}++;
}

Die Ausgabe lautet jetzt in etwa:

Fuer Benutzer: ishmael-Steinhauser wurden 1Mails greylisted.
Fuer Benutzer: tisdale wurden 1Mails greylisted.
Fuer Benutzer: dettmerqkz wurden 1Mails greylisted.
Fuer Benutzer: rsdf173 wurden 1Mails greylisted.
Fuer Benutzer: GiuleyLui wurden 1Mails greylisted.

Es scheint, als würde er das Hash immer noch nicht durch jeden Aufruf
hochzählen. Eigentlich sollte es doch mit += 1; um eins erhöht werden?
Nicht wenn er jedesmal zuerst auf 0 gesetzt wird.
Gruß

stefan



Next: