Thread SNMP Walk (9 answers)
Opened by draekster at 2009-05-28 14:39

Gast draekster
 2009-05-28 15:26
#121998 #121998
halso haben tu ich bis jez das

Code (perl): (dl )
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;


die 3 ersten OID's sollen so bleiben da die ja eh überall fest sind
aber die für die Temperatur und die Luftfeuchte müssen "gewalk werden" da ich sonst für jeden Server die OID's heraussuchen müssete

View full thread SNMP Walk