hello people i am trying to parse a radius log with a regexp provided by
rob,the regexp used to work with a cisco cdr log and i am trying to
adapt it to parse a radius log. I am trying to get the NAS-IP-Address
parameter but i get the following output:
perl optrad.pl
Argument IP isn't numeric in subtraction (-) at optrad.pl line 54.
Argument NAS isn't numeric in subtraction (-) at optrad.pl line 54.
Argument Address isn't numeric in subtraction (-) at optrad.pl line 54.
Use of uninitialized value in concatenation (.) at optrad.pl line 54.
NAS-IP-Address :
I tried to scape the - but it did'nt work
This is the script:
#!/usr/bin/perl
my $log_entry = q[Sat Jul 27 07:07:00 2002
NAS-IP-Address =10.0.0.2
NAS-Port-Type = Async
User-Name = 555
Called-Station-Id = 8
Calling-Station-Id = 33
Acct-Status-Type = Stop
Service-Type = Login-User
h323-gw-id = h323-gw-id=bue-pstngw-div1.
Cisco-AVPair = h323-incoming-conf-id=53E0B5CC A08011D6
8D649004 9931091
h323-call-origin = h323-call-origin=answer
h323-call-type = h323-call-type=VoIP
h323-setup-time = h323-setup-time=*07:14:18.107 GMT Sat Jul 27
2002
h323-connect-time = h323-connect-time=*07:14:39.524 GMT Sat
Jul 27 2002
h323-disconnect-time = h323-disconnect-time=*07:15:02.198 GMT
Sat Jul 27 2002
h323-disconnect-cause = h323-disconnect-cause=10
h323-remote-address = h323-remote-address=10.0.0.1
h323-voice-quality = h323-voice-quality=10
h323-conf-id = h323-conf-id=53E0B5CC A08011D6 8D649004 9931091
Acct-Session-Id = 053D
Acct-Input-Octets = 17895 Acct-Output-Octets = 7825
Acct-Input-Packets = 453 Acct-Output-Packets = 397
Acct-Session-Time = 23 Acct-Delay-Time = 0 Client-IP-Address =
10.0.0.1 ];
# a single log entry
my %data = ();
# grab the date from the first section,
# and remove the first section all-together
$log_entry =~ s/^(.*?:.*?:\d+).*?:.*?:.*?:/Date $1,/;
# split the line my the commas
for (split /\s*,\s*/, $log_entry) {
# grab the name/value pairs and save to a hash
/^(\w+)\s*(.*)/ and $data{$1} = $2 and next; }
# grab what you need from the hash
print DATE: $data{Date}\n; print NAS-IP-Address :
$data{NAS-IP-Address }\n; # etc...
Any ideas on how to adecuate the regexp?
Thanks in advance,sorry for the long mail
Hernan
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]