I was thinking along the same lines as NetWallah, but I discovered that -agentaddr isn't recognized by SNMPv2c.
Maybe this is closer to what you need.
#!/usr/bin/perl
use strict;
use warnings;
use Net::SNMP::XS;
use Net::SNMP qw(:ALL);
my ( $session, $error ) = Net::SNMP->session(
-hostname => '127.0.0.1',
-community => 'public',
-localaddr => '192.168.1.108',
-port => SNMP_TRAP_PORT,
-version => 'snmpv2c',
-community => 'public',
-debug => '0x02',
-nonblocking => 0,
);
if ( not defined $session ) {
printf "ERROR: %s.\n", $error;
exit 1;
}
my $result = $session->snmpv2_trap(
-varbindlist => [
'1.3.6.1.2.1.1.3.0', TIMETICKS, 600,
'1.3.6.1.6.3.1.1.4.1.0', OBJECT_IDENTIFIER, '1.3.6.1.4.1',
'1.3.6.1.2.1.1.1.0', OCTET_STRING, 'Hub',
'1.3.6.1.2.1.1.5.0', OCTET_STRING, 'Closet Hub',
],
);
if ( not defined $result ) {
printf "ERROR: %s.\n", $session->error();
}
else {
printf "SNMPv2-Trap-PDU sent.\n";
}
|