This file is indexed.

/usr/share/doc/libnet-snmp-perl/examples/trap.pl is in libnet-snmp-perl 6.0.1-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#! //bin/env perl

# ============================================================================

# $Id: trap.pl,v 6.0 2009/09/09 15:05:33 dtown Rel $

# Copyright (c) 2000-2009 David M. Town <dtown@cpan.org>
# All rights reserved.

# This program is free software; you may redistribute it and/or modify it
# under the same terms as the Perl 5 programming language system itself.

# ============================================================================

use strict;
use warnings;

use Net::SNMP qw( :ALL );

my ($session, $error) = Net::SNMP->session(
   -hostname  => $ARGV[0] || 'localhost',
   -community => $ARGV[1] || 'public',
   -port      => SNMP_TRAP_PORT,      # Need to use port 162 
);

if (!defined $session) {
   printf "ERROR: %s.\n", $error;
   exit 1;
}

## Trap example specifying all values.

my $result = $session->trap(
   -enterprise   => '1.3.6.1.4.1',
   -agentaddr    => '10.10.1.1',
   -generictrap  => WARM_START,
   -specifictrap => 0,
   -timestamp    => 12363000,
   -varbindlist  => [
      '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 (!defined $result) {
   printf "ERROR: %s.\n", $session->error();
} else {
   printf "Trap-PDU sent.\n";
}

## A second trap example using mainly default values.

my @varbind = ( '1.3.6.1.2.1.2.2.1.7.0', INTEGER, 1, );

$result = $session->trap(-varbindlist  => \@varbind);

if (!defined $result) {
   printf "ERROR: %s.\n", $session->error();
} else {
   printf "Trap-PDU sent.\n";
}

$session->close();

## Create a new object with the version set to SNMPv2c 
## to send a snmpV2-trap.

($session, $error) = Net::SNMP->session(
   -hostname  => $ARGV[0] || 'localhost',
   -community => $ARGV[1] || 'public',
   -port      => SNMP_TRAP_PORT,      # Need to use port 162
   -version   => 'snmpv2c',
);

if (!defined $session) {
   printf "ERROR: %s.\n", $error;
   exit 1;
}

$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 (!defined $result) {
   printf "ERROR: %s.\n", $session->error();
} else {
   printf "SNMPv2-Trap-PDU sent.\n";
}

$session->close();

exit 0;

# ============================================================================