-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Mumia W. wrote:
> On 11/14/2006 09:53 PM, Chris Parker wrote:
>>
>> I couldn't find the answer while googling for a regexp to pull the ip
>> from my log files so here I am. I am trying to get the ip's (source and
>> destination) along with the ports for a summary. WFLOG doesnt cover my
>> firewall so I thought id try. Code is as follows:
>>
>> #!/perl
>>
>> while(defined($line = <>))
>> {
>> # Cut newlines off
>> chomp($line);
>> #take out []- and -'s
>> $line =~ s/^\[//;
>>
>> $line =~ s/\]//;
>> $line =~ s/-//g;
>> $line =~ s/src_ip=//g;
>> $line =~ s/dst_ip=//g;
>>
>> #print("matched = $&\n");
>> # Seperate fields
>> @parts = split(/\s+/, $line);
>> # Get the date info
>> $date = $parts[0];
>> # Get the time
>> $time = $parts[1];
>> # Blocks stripper
>> #$parts =~ s/Blocked \w+ \w+ \w+ Attack//;
>> # Source IP
>> $source_ip =~
>> m/^([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5])\.
>> ([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5])$/;
>> #
>> #(?:1\d?\d?|2(?:[0-4]\d?|[6789]|5[0-5]?)?|[3-9]\d?|0)/;
>> #$source_ip = $parts[6];
>> # Destination IP
>> $dest_ip = $parts[7];
>>
>>
>> print("*Date: $date Time: $time Source: $source_ip Destination:
>> $dest_ip*\n");
>> }
>>
>> Here listed is data file I am working with:
>> __DATA__
>> [10/04/2006 13:18:52.63] Blocked - Port Scan Attack -
>> src_ip=24.123.222.53:28874 - dst_ip=00.000.160.000:1026 - UDP
>> [10/04/2006 02:20:24.98] Blocked - Winnuke Attack -
>> src_ip=61.110.173.193:1600 - dst_ip=00.000.160.000:139 - TCP
>>
>
> TIMTOWTDI. Season to taste:
>
> use Data::Dumper;
> use strict;
> use warnings;
> my $data = q{
> [10/04/2006 13:18:52.63] Blocked - Port Scan Attack -
> src_ip=24.123.222.53:28874 - dst_ip=00.000.160.000:1026 - UDP
> [10/04/2006 02:20:24.98] Blocked - Winnuke Attack -
> src_ip=61.110.173.193:1600 - dst_ip=00.000.160.000:139 - TCP
> };
>
> my @logs;
>
> open (my $fh, '<', \$data) or die("open failed: $!");
> while (my $line = <$fh>) {
> if ($line =~ / Blocked - ([^-]+)/) {
> my $type = $1;
>
> push @logs, [
> $type,
> $line =~ /^\[(\S+) ([^]]+)/,
> $line =~ /src_ip=(\S+)/,
> $line =~ /dst_ip=(\S+)/ ];
> }
> }
> close $fh;
>
> print Dumper([EMAIL PROTECTED]);
>
>
>
>
Thanks alot. I'll try these out shortly.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFWwXOVz91Ftd3lBkRAnvGAJ93saVepgM6DsxO568vPDpkcFEacQCfTkof
TfN6TRoyUt74+Oa8uC825Ng=
=mfBW
-----END PGP SIGNATURE-----
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>