← Back to team overview

sslug-teknik team mailing list archive

Fw: Perl puzzle - (multidimensionelt hash-array?)

 

Hej ssluggere.

Der var ikke bid i perl-gruppen, måske er der nogle hér som kan hjælpe?

"Kent B. Hansen" <kent.hansen@xxxxxxxxxxx> skrev i en meddelelse
news:a2sg2m$8r3$1@xxxxxxxxxxxx...
> Hej ssluggere!
>
> Jeg har et problem med en logfil, som jeg gerne vil have analyseret -
måske
> er her nogle som kan hjælpe mig på vej?
>
> Logfilen indeholder en masse linier a'la:
> (something...) 10.1.2.3 -> 10.3.4.5 (something...)
>
> ...altså "ip-nummer 10.1.2.3 har lavet en connect til ip 10.3.4.5".
>
> Jeg vil gerne lave et script, som kan analysere filen, og fortælle mig
hvor
> mange FORSKELLIGE ip-adresser et givent ip har haft fat i (for at opdage
> portscans osv.)
>
> Jeg åbner filen som <LOG> og fyrer følgende af:
>
> while ( $line = <LOG> ) {
>  if (($src, $dest) = ( $line =~ / (10\.\d{1,3}\.\d{1,3}\.\d{1,3}).* ->
> (10\.\d{1,3}\.\d{1,3}\.\d{1,3})/ )) {
>   $connects{$src}{$dest}+=1;
>  }
> }
>
> Det burde, såvidt jeg kan se, tælle op hvor mange gange en given connect
> (fra ét bestemt ip til ét bestemt andet) finder sted. Problemet er at
fiske
> dataene ud igen...
>
> Jeg forsøger at lave to nestede loops, a'la:
>
> foreach $src (keys (%connects) ) {
>  foreach $dest (keys (%connects{$src}) ) {
>   $visited{$src}++;
>  }
> }
>
> ...men det virker bare ikke. :-(
>
> Hvordan kringler jeg den?!?
>
> Mvh.
> Kent B. Hansen
>
>