Leser: 24
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
#! /usr/local/bin/perl use strict; use Net::SNMP; #SNMP verwenden ################################################################################################################################################ do { ################################################################################################################################################ open(IP, "<ip.txt"); while(<IP>) { chomp($_); #Zeilenumbruch verschwindibus #sonst wird die Ausgabe Verschoben ################################################################################################################################################ my ($session, $error) = Net::SNMP->session( #Sitzung starten -hostname => shift || $_, #IP zum Gerät #kann auch Internetadresse sein -community => shift || '*****', -port => shift || 161 ); ################################################################################################################################################ if (!defined($session)) #Prüfung ob die Sitzung funktioniert { printf("ERROR: %s.\n", $error); exit 1; } ################################################################################################################################################ my $OID = '.1.3.6.1.2.1.1.2.0'; #Variable OID #OID zur Hersteller OID my $Name = '.1.3.6.1.2.1.1.5.0'; #Variable Name #OID zum Gerätename my $Loc = '.1.3.6.1.2.1.1.6.0'; #Variable Loc #OID zum Standort my $result = $session->get_request ( -varbindlist => [$OID, $Name, $Loc] ); if (!defined($result)) { printf("ERROR: %s.\n", $session->error); $session->close; exit 1; } ################################################################################################################################################ open (file, ">>ausgabe.txt"); #öffnet Datei zum speichern ################################################################################################################################################ printf ( "Standort: %s\nIP: %s\tGeraetename: %s\tOID: %s\nTemperatur: %s\tLuftfeuchte: %s\n\n", #Ausgabe der Hersteller OID $result->{$Loc}, $session->hostname, $result->{$Name}, $result->{$OID} ); printf file ( "Standort: %s\nIP: %s\tGeraetename: %s\tOID: %s\nTemperatur: %s\tLuftfeuchte: %s\n\n", #speichern in die Datei $result->{$Loc}, $session->hostname, $result->{$Name}, $result->{$OID} ); ################################################################################################################################################ $session->close; ################################################################################################################################################ } close(IP); ################################################################################################################################################ print file ( "----------------------------------------------------------------------\n\n" ); close (file); #schließen der Ausgabe Datei ################################################################################################################################################ print "----------------------------------------------------------------------\n\n"; sleep(5); ################################################################################################################################################ } while(0<1); ################################################################################################################################################ exit 0;
Guest draeksteraber die für die Temperatur und die Luftfeuchte müssen "gewalk werden"
1 2 3 4 5
my $response = $session->get_next_request('1.3.6.1.2.1.25.3.6'); my @nextid = keys %$response; while ( $nextid[0] =~ m/^1\.3\.6\.1\.2\.1\.25\.3\.6/ ) { #tu etwas fuer die einzelnen OIDs }
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
#! /usr/local/bin/perl use strict; use Net::SNMP; my ($session, $error) = Net::SNMP->session( -hostname => shift || '127.0.0.1', -community => shift || 'public', -port => shift || 161 ); if (!defined($session)) { printf("ERROR: %s.\n", $error); exit 1; } my $response = $session->get_next_request('1.3.6.1.2.1.1'); my @nextid = keys %$response; while ( $nextid[0] =~ m/^1\.3\.6\.1\.2\.1\.1/ ) { $response = $session->get_next_request( $nextid[0] ); @nextid = keys %$response; print "durchlaufe OID: $nextid[0] \n"; #fuer diese OID nun Werte abholen etc. }
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
durchlaufe OID: 1.3.6.1.2.1.1.2.0
durchlaufe OID: 1.3.6.1.2.1.1.3.0
durchlaufe OID: 1.3.6.1.2.1.1.4.0
durchlaufe OID: 1.3.6.1.2.1.1.5.0
durchlaufe OID: 1.3.6.1.2.1.1.6.0
durchlaufe OID: 1.3.6.1.2.1.1.8.0
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.1
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.2
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.3
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.4
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.5
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.6
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.7
durchlaufe OID: 1.3.6.1.2.1.1.9.1.2.8
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.1
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.2
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.3
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.4
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.5
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.6
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.7
durchlaufe OID: 1.3.6.1.2.1.1.9.1.3.8
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.1
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.2
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.3
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.4
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.5
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.6
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.7
durchlaufe OID: 1.3.6.1.2.1.1.9.1.4.8
while ( $nextid[0] =~ m/^1\.3\.6\.1\.2\.1\.1/ ) {