NAME

Parse::IASLog - A parser for Microsoft IAS-formatted log entries.

VERSION

version 1.14

SYNOPSIS

Function Interface:

  use strict;
  use Data::Dumper;
  use Parse::IASLog;

  while (<>) {
	chomp;
	my $record = parse_ias( $_, enumerate => 0 );
	next unless $record;
	print Dumper( $record );
  }

Object Interface:

  use strict;
  use Data::Dumper;
  use Parse::IASLog;

  my $ias = Parse::IASLog->new( enumerate => 0 );

  while (<>) {
	chomp;
	my $record = $ias->parse( $_ );
	next unless $record;
	print Dumper( $record );
  }

DESCRIPTION

Parse::IASLog provides a convenient way of parsing lines of text that are formatted in Microsoft Internet Authentication Service (IAS) log format, where attributes are logged as attribute-value pairs.

The parser takes lines of IAS-formatted text and returns on successful parsing a hashref record containing the applicable RADIUS attributes and values.

The module provides a perl implementation of the Iasparse tool.

FUNCTION INTERFACE

Using the module automagically imports 'parse_ias' into your namespace.

parse_ias

Takes a string of IAS-formatted text as the first parameter. Subsequent parameter pairs are treated as options. See new() for full details regarding optional parameters. Returns a hashref on success or undef on failure. See below for the format of the hashref returned.

OBJECT INTERFACE

CONSTRUCTOR

new

Creates a new Parse::IASLog object. Takes one optional parameter:

  'enumerate', set to a false value to disable the enumeration of known
	       attribute values, default is 1;

METHODS

parse

Takes a string of IAS-formatted text. Returns a hashref on success or undef on failure.

The hashref will contain RADIUS attributes as keys. The following header attributes should always be present:

'NAS-IP-Address', The IP address of the NAS sending the request;
'User-Name', The user name that is requesting access;
'Record-Date', The date that the log was written;
'Record-Time', The time that the log was written;
'Service-Name', The name of the service that is running in the RADIUS server;
'Computer-Name', The name of the RADIUS server;

SEE ALSO

http://technet.microsoft.com/en-us/network/bb643123.aspx

http://en.wikipedia.org/wiki/RADIUS

AUTHOR

Chris Williams

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Chris Williams.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.