Hoi
Hopelijk kunnen jullie me helpen. Binnen een paar weken moet ik mijn eindwerk afgeven. Ik heb echter nog een probleempje waarbij ik hoop dat jullie me raad kunnen geven.
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:
Ik heb spoedig hulp nodig, want dit alles betreft mijn eindwerk.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(); }
alvast bedankt
alle tips zijn welkom

Likes:


Quote