Hello!

How to get value in perl extension via command as below.

 

snmpset -c private -v 1 localhost .1.3.6.1.4.1.318.2.1.2.1.2.1 s 2222

 

i.e. How to get the value "2222" for the  variable $string_value

 

Thanks

 

----- code -----

#!/usr/bin/perl

use NetSNMP::OID (':all'); 

use NetSNMP::agent (':all');

use NetSNMP::ASN qw(ASN_IPADDRESS ASN_GAUGE ASN_OCTET_STR);

 

sub hello_handler {

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

  my $request;

  

  my $string_value = "1234";

    

  my $string_ASN = ASN_OCTET_STR;

  

  for($request = $requests; $request; $request = $request->next()) {

    my $oid = $request->getOID();

    # SET mode

    if ($request_info->getMode() == MODE_SET) {

      if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.318.2.1.2.1.2.1")) {

        $request->setValue($string_ASN, ($string_value));

      }

      elsif ($oid == new NetSNMP::OID(".1.3.6.1.4.1.318.2.1.2.1.2.1")) {

        $request->setValue($string_ASN, ($string_value));

      }

    } elsif ($request_info->getMode() == MODE_GETNEXT) {

      if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.318.2.1.2.1.2.1")) {

        $request->setOID(".1.3.6.1.4.1.318.2.1.2.1.2.1");

        $request->setValue($string_ASN, ($string_value));

      }

      elsif ($oid < new NetSNMP::OID(".1.3.6.1.4.1.318.2.1.2.1.2.1")) {

        $request->setOID(".1.3.6.1.4.1.318.2.1.2.1.2.1");

        $request->setValue($string_ASN, ($string_value));

      }

    }

 

  }

}

my $agent = new NetSNMP::agent();

$agent->register(".1.3.6.1.4.1.318.2.1.2.1.2.1",
".1.3.6.1.4.1.318.2.1.2.1.2.1",

                 \&hello_handler);

_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to