Machbar ist alles, aber alles mache ich nicht für dich ;)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use IO::File;
use File::stat;
my $fh = new IO::File 'radius.log', O_RDONLY or die $!;
my $st = stat($fh) or die $!;
my $len = $st->[7];
my $data;
read $fh, $data, $len;
my @lines = split /\n/, $data;
foreach my $line(@lines){
$line =~ /^(\w+\s+\w+\s+\d+\s+\d{2}:\d{2}:\d{2}\s+\d{4})\s+:\s+(\w+):(.*):\s+\[(.*)\]\s+\((.*)\)$/;
#printf "Date => %s, Auth => $2, Mesg => $3, MAC/X => $4, Client => $5\n", $1, $2, $3, $4, $5;
printf "Client: %s\n", $5;
}
Du hast eigentlich alles in $5, auch die MAC-Addr. splitte $5 nach \s+ und den Rest kriegst du bestimmt selbst hin.