All pastes #979165 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-04-10 03:09 UTC
rendered paste body
#!/usr/bin/perl

use Net::SNMP;

use strict;

use warnings;


my $community           = "eX0gyN37";
my $inputfilename 	= "/home/cjones/snmpscripts/hostipaddresses.txt";
my $outputfilename 	= "/home/cjones/snmpscripts/vlan1.csv";

my $IFINDEX             = "1.3.6.1.2.1.2.2.1.1";
my $IFTYPE              = "1.3.6.1.2.1.2.2.1.3";
my $IFNAME              = "1.3.6.1.2.1.31.1.1.1.1";
my $IFALIAS             = "1.3.6.1.2.1.31.1.1.1.18";
my $IFOPERSTATUS        = "1.3.6.1.2.1.2.2.1.8";
my $VMVLAN              = "1.3.6.1.4.1.9.9.68.1.2.2.1.2";
my $HOSTNAME_OID        = "1.3.6.1.4.1.9.2.1.3.0";
my $IFNUMBER            = "1.3.6.1.2.1.2.1.0";

open my $input, '<', $inputfilename or die "$0: $inputfilename: $!\n";
open my $output, '>', $outputfilename or die "$0: $outputfilename: $!\n";

while (my $ip = $input) {

	$ip =~ s/\n//;
        $ip =~ s/\r//;

	my ($snmp,$snmperror)   = Net::SNMP->session(
                -hostname       => $ip,
                -community      => $community
        	);

	my $response 		= $snmp->get_request(
		$IFNUMBER,
		$HOSTNAME_OID
		);

	my $getNumInterfaces	= $response->{"$IFNUMBER"};
	my $hostname		= $response->{"$HOSTNAME_OID"};


	print "$ip - $hostname: ";
	print $output "\n$hostname,$ip,,,\n";
	print $output "$ip,Interface,Description,Status,Vlan\n";

	for (my $i=1; $i <= $getNumInterfaces; $i++) {
        	$response    = $snmp->get_request(
                	"$IFTYPE.$i",
                	"$IFNAME.$i",
                	"$IFALIAS.$i",
                	"$IFOPERSTATUS.$i",
                	"$VMVLAN.$i"
        		);

        	my $ifType = $response->{"$IFTYPE.$i"};
        	my $ifName = $response->{"$IFNAME.$i"};
        	my $ifAlias = $response->{"$IFALIAS.$i"};
        	my $ifOperStatus = $response->{"$IFOPERSTATUS.$i"};
		if ($ifOperStatus == 1) { $ifOperStatus = "connected" } else { $ifOperStatus = "notconnect" };
        	my $vmVlan = $response->{"$VMVLAN.$i"};

        	if (($ifType == 6) && ($vmVlan == 1)) {
                	print $output ",$ifName,$ifAlias,$ifOperStatus,$vmVlan\n";
        		}
		}

		print "OK\n";

	}

close($inputfilename);
close($outputfilename);

exit 0;