- Timestamp:
- Aug 30, 2012, 8:33:18 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/klask
r111 r112 1372 1372 } 1373 1373 1374 if (not defined $SWITCH_DB{$switch_name}) { 1375 die "Switch $switch_name must be defined in klask configuration file\n"; 1376 } 1377 1378 my $sw = $SWITCH_DB{$switch_name}; 1379 my %session = ( -hostname => $sw->{hostname} ); 1380 $session{-version} = $sw->{version} || 1; 1381 $session{-port} = $sw->{snmpport} || $DEFAULT{snmpport} || 161; 1382 if (exists $sw->{version} and $sw->{version} eq '3') { 1383 $session{-username} = $sw->{username} || 'snmpadmin'; 1384 } 1385 else { 1386 $session{-community} = $sw->{community} || $DEFAULT{community} || 'public'; 1387 } 1388 1389 my $research = $OID_NUMBER{searchPort} . mac_address_hex_to_dec($mac_address); 1390 print "Klask search OID $research on switch $switch_name\n"; 1391 1392 my ($session, $error) = Net::SNMP->session( %session ); 1393 print "$error \n" if $error; 1394 1395 my $result = $session->get_request( 1396 -varbindlist => [$research] 1397 ); 1398 1399 if (not defined $result or $result->{$research} eq 'noSuchInstance') { 1400 print "Klask do not find MAC $mac_address on switch $switch_name\n"; 1374 $switch_name = join(',', map {$_->{hostname}} @SWITCH ) if $switch_name eq q{*}; 1375 1376 for my $sw_name (split /,/, $switch_name) { 1377 if (not defined $SWITCH_DB{$sw_name}) { 1378 die "Switch $sw_name must be defined in klask configuration file\n"; 1379 } 1380 1381 my $sw = $SWITCH_DB{$sw_name}; 1382 my %session = ( -hostname => $sw->{hostname} ); 1383 $session{-version} = $sw->{version} || 1; 1384 $session{-port} = $sw->{snmpport} || $DEFAULT{snmpport} || 161; 1385 if (exists $sw->{version} and $sw->{version} eq '3') { 1386 $session{-username} = $sw->{username} || 'snmpadmin'; 1387 } 1388 else { 1389 $session{-community} = $sw->{community} || $DEFAULT{community} || 'public'; 1390 } 1391 1392 my $research = $OID_NUMBER{searchPort} . mac_address_hex_to_dec($mac_address); 1393 print "Klask search OID $research on switch $sw_name\n"; 1394 1395 my ($session, $error) = Net::SNMP->session( %session ); 1396 print "$error \n" if $error; 1397 1398 my $result = $session->get_request( 1399 -varbindlist => [$research] 1400 ); 1401 1402 if (not defined $result or $result->{$research} eq 'noSuchInstance') { 1403 print "Klask do not find MAC $mac_address on switch $sw_name\n"; 1404 $session->close; 1405 } 1406 1407 my $swport = $result->{$research}; 1401 1408 $session->close; 1402 } 1403 1404 my $swport = $result->{$research}; 1405 $session->close; 1406 1407 print "Klask find MAC $mac_address on switch $switch_name port $swport\n"; 1409 1410 print "Klask find MAC $mac_address on switch $sw_name port $swport\n"; 1411 } 1408 1412 return; 1409 1413 }
Note: See TracChangeset
for help on using the changeset viewer.