Thread ip mit regexp aus einer Datei filtern: wie filtert man aus einer log datei ips (33 answers)
Opened by misterx at 2005-03-28 16:35

Ishka
 2005-03-28 17:18
#52996 #52996
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hier mal der Code, um die IPs zu filtern, wie du die timestamps rausfindest, lass ich dir als Übungsaufgabe (für Reguläre Ausdrücke ist perldoc perlre nicht schlecht):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my %hash=();
open(DATEI, "<$dateiname") or die "Error in reading $dateiname: $!\n";
while(<DATEI>){
if(m/((\d+)\.(\d+)\.(\d+)\.(\d+))/)
{
$hash{$1}++;
}else{
warn "Zeile $. in Dateiname enthält keine IP\n"; # In $. steht
# immer die Nummer der zuletzt gelesenen
# Zeile -- siehe perldoc perlvar
}
}
close DATEI;

for(keys %hash)
{
print "IP $_ tritt $hash{$_} mal auf.\n";
}


[edit] by Strat: Fehlerbehandlung hinzugefuegt....tststs[/edit]\n\n

<!--EDIT|Strat|1112166081-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}

View full thread ip mit regexp aus einer Datei filtern: wie filtert man aus einer log datei ips