#!/usr/bin/perl #Version 1 2/27/17 use SNMP_util; use NetAddr::IP; #use warnings; ####Variable Dec my $sCdpCacheCapabilities = "1.3.6.1.4.1.9.9.23.1.2.1.1.9"; my $sCommunityString = "notReallyGivingUmyCommunityString"; my $counter =0; $cdpCacheDeviceId = "1.3.6.1.4.1.9.9.23.1.2.1.1.6"; $cdpCachePlatform = "1.3.6.1.4.1.9.9.23.1.2.1.1.8"; $cdpInterfaceEntry = "1.3.6.1.4.1.9.9.23.1.1.1.1.6"; $cdpCacheAddress = "1.3.6.1.4.1.9.9.23.1.2.1.1.4"; ##### End Variable Declaration #####Open File Handle open (FILEREAD, "formerlyBridges2Input.csv"); while ($Host = ){ chomp ($Host); (@cdpNeighborPackedCapabilities) = &snmpwalk("$sCommunityString\@$Host","$sCdpCacheCapabilities"); foreach $PcdpCap (@cdpNeighborPackedCapabilities){ #($index, $capHEX) = split(/:/, $PcdpCap, 2); ($uni, $mee, $capHEX) = split (/[\.,:]/, $PcdpCap); #($ind, $in2) = split(/./, $index, 2); ($index) = join ('.' , $uni,$mee); my $sUnpackedCDPcap; map { $sUnpackedCDPcap .= sprintf("%02x",$_) } unpack "CCCCCC", $capHEX; if ($sUnpackedCDPcap == "00000490"){ $sIDcomp = "$cdpCacheDeviceId.$index"; $sPlaComp = "$cdpCachePlatform.$index"; $sInEntry = "$cdpInterfaceEntry.$uni"; $sAddComp = "$cdpCacheAddress.$index"; ###print "$sAddComp\n"; ($devName) = &snmpget("$sCommunityString\@$Host","$sIDcomp"); ($sDevPlatform) = &snmpget("$sCommunityString\@$Host","$sPlaComp"); ($sPortName) = &snmpget("$sCommunityString\@$Host","$sInEntry"); ($ipAdd) = &snmpget("$sCommunityString\@$Host","$sAddComp"); # $Do = join '.', unpack "C*", pack "H*", $ipAdd; my $val4; map {$val4 .= sprintf("%02x",$_)} unpack "C*", $ipAdd; $neighIP = join '.', unpack "C*", pack "H*", $val4; print "$Host,$devName,$sDevPlatform,$sPortName,http://$neighIP/\n";} }}