Netwerkbeheer met Net-SNMP

Status
Niet open voor verdere reacties.

wimternet

Nieuwe gebruiker
Lid geworden
10 mrt 2009
Berichten
3
Ten eerste, ik weet niet of dat de post juist staat.

Ik heb een windows-pc (versie onbelangrijk) met ActivePerl 5.8.8 build 824 en Net-SNMP 5.4.2.1-1. Dit laatste is een open-source programma om als agent voor het SNMP-protocol te gebruiken.

Voor die agent heb ik geprobeerd een subagent te schrijven in Perl. De code is volgens mij in orde, maar Net-SNMP gebruikt de subagent precies niet.

Volgende regel staat in het bestand snmpd.conf:
Code:
perl do "C:/Perlscript/test.pl";

Volgende code is maar een test-programma die ook niet werkt:
Code:
use NetSNMP::OID (':all');
use NetSNMP::agent (':all');

sub myhandler
{
	my ( $handler, $registration_info, $request_info, $requests ) = @_;

	for( $request = $requests; $request; $request = $request->next() )
	{
		my $oid = $request->getOID();
		
		if( $request_info->getMode() == MODE_GET )
		{
			if( $oid == new NetSNMP::OID( $rootOID . ".1" ) )
			{
				my $value = 50;
				$request->setValue( ASN_INTEGER, $value );
			}
		}
		elsif( $request_info->getMode() == MODE_GETNEXT )
		{
			if( $oid <= new NetSNMP::OID($host) )
			{
				$request->setOID( $rootOID . ".1" );
				my $value = 50;
				$request->setValue( ASN_INTEGER, $value );
			}
		}
	}
}

$i = 0;
sub test
{
	my $value = ++$i;
	return $value . "\n";
}

{
	print test();
	my $agent = new NetSNMP::agent( 'Name' => 'my_agent_name' );
	print test();
	my $rootOID = ".1.3.6.1.3.1";
	print test();
	my $regoid = new NetSNMP::OID( $rootOID );
	print test();
	$agent->register( "my_agent_name", $regoid, \&myhandler );
	print test();
}

Ik heb spoedig hulp nodig, want dit alles betreft mijn eindwerk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan