#! /usr/local/bin/perl
eval '(exit $?0)' && eval 'exec /usr/local/bin/perl $0 ${1+"$@"}'
&& eval 'exec /usr/local/bin/perl $0 $argv:q'
if 0;
#====================================================================
#
# QUERY MAC ADDRESSES FROM 3COM SWITCH
#
# The following program automatically gets a list of MAC
# addresses on a 3com switch and which port each address
# is on using Ethernet MIB:dot1dTpFdbTable.
#
# NOTE: Portions of this code used from David M. Town <dtown@cpan.
+org>
# table.pl
#
#====================================================================
use strict;
use Net::SNMP qw(snmp_dispatcher oid_lex_sort);
#=== Setup session to remote host ===
my ($session, $error) = Net::SNMP->session(
-hostname => $ARGV[0] || 'localhost',
-community => $ARGV[1] || 'public',
-port => $ARGV[2] || 161
);
#=====================================
#=== Was the session created? ===
if (!defined($session)) {
printf("ERROR: %s\n", $error);
exit 1;
}
#==================================
#=== OIDs queried to retrieve information ====
my $TpFdbAddress = '1.3.6.1.2.1.17.4.3.1.1';
my $TpFdbPort = '1.3.6.1.2.1.17.4.3.1.2';
#=============================================
#=== Print the returned MAC addresses ===
printf("\n== MAC Addresses: %s ==\n\n", $TpFdbAddress);
my $result;
if (defined($result = $session->get_table(-baseoid => $TpFdbAddress)))
+ {
foreach (oid_lex_sort(keys(%{$result}))) {
printf("%s => %s\n", $_, $result->{$_});
}
print "\n";
} else {
printf("ERROR: %s\n\n", $session->error());
}
#==========================================
#=== Print the returned MAC ports ===
printf("\n== MAC Ports: %s ==\n\n", $TpFdbPort);
my $result;
if (defined($result = $session->get_table(-baseoid => $TpFdbPort))) {
foreach (oid_lex_sort(keys(%{$result}))) {
printf("%s => %s\n", $_, $result->{$_});
}
print "\n";
} else {
printf("ERROR: %s\n\n", $session->error());
}
#=============================================
#=== Close the session and exit the program ===
$session->close;
exit 0;
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|