#!/usr/bin/perl # ips.pl $Revision: 1.1 $ # Analiza archivos access de Sun ONE Directory Server 5.2 para generar # reporte de IPs de clientes y servidores # Copyright (C) 2005 Javier Arturo Rodriguez use strict; my($acceso); my $filename = shift @ARGV; die("Usage:\t$0 \n\tbunzip2 -c | $0 -\n") unless $filename; open(FILE,"<$filename"); while() { chomp; if($_=~m,^\[(.*?)\].*?connection from ([\d\.]+) to ([\d\.]+),) { $acceso->{$3}->{$2}->{TS}=$1; ++$acceso->{$3}->{$2}->{CNT}; } } close(FILE); foreach my $dst (sort keys %{$acceso||{}}) { print "Acceden a traves de $dst\n"; foreach my $src ( reverse sort { $acceso->{$dst}->{$a}->{CNT} <=> $acceso->{$dst}->{$b}->{CNT} } keys %{$acceso->{$dst}||{}} ) { printf(" %-15s (last seen on %s; %d hit%s)\n", $src, $acceso->{$dst}->{$src}->{TS}, $acceso->{$dst}->{$src}->{CNT}, $acceso->{$dst}->{$src}->{CNT}==1?'':'s', ); } }