Hello,

With Cisco IOS 12.2.15T there is a new SNMP OID that gives the users that are connected according to the Decimal Acct-Session-Id. So with this OID you can always use snmpget to check if a user is still online. This works for Async, ISDN and ADSL users. You need to use the Decimal form of the Acct-Session-Id not the Hexadecimal. We use an SQL Session database and we do the conversion there. I don't know if there is a Hextoint function in Perl

         Regards
              Vangelis


package Radius::Nas::Cisco; use Radius::SNMP; use strict;

# The Cisco SNMP MIB
$Radius::Nas::CiscoMIB = '.iso.org.dod.internet.private.enterprises.9';

sub isOnline
{
   my ($name, $nas_id, $nas_port, $session_id, $client) = @_;

return 1 unless &Radius::SNMP::snmpgetprogExists();

&main::log($main::LOG_DEBUG, "Cisco: Checking $session_id-> $nas_id:$nas_port:$name" );

       my $result = &Radius::SNMP::snmpget
           ($nas_id,
            $client->{SNMPCommunity},
            "$Radius::Nas::CiscoMIB.9.150.1.1.3.1.2.$session_id");

return 1 if (!$result || $result =~ /no response/i); # Could not SNMP. Assume still there
return uc($1) eq uc($name)
if ($result =~ /^.*\"([^"]+)".*$/);


   return 0; # not there
}

1;


=== Archive at http://www.open.com.au/archives/radiator/ Announcements on [EMAIL PROTECTED] To unsubscribe, email '[EMAIL PROTECTED]' with 'unsubscribe radiator' in the body of the message.

Reply via email to