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:
Volgende code is maar een test-programma die ook niet werkt:
Ik heb spoedig hulp nodig, want dit alles betreft mijn eindwerk.
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.