Net::SNMP
Get-Request |
 |
© Michael Kalinka, 2002 |
Ein Host - Eine OID
Beispiel für einen minimalen Get-Request
1 #!/usr/bin/perl
2 use Net::SNMP;
3
4 ($session,$error) = Net::SNMP->session(
5 -hostname => '192.168.0.100',
6 -community => 'public',
7 );
8
9 my $sysDescr = '.1.3.6.1.2.1.1.1.0';
10
11 $response = $session->get_request($sysDescr);
12 $session->close ();
13
14 print $response->{$sysDescr};
Beschreibung :
- Zeile 2
- Das Modul Net::SNMP wird eingebunden
- Zeilen 4-7
- Zu einem Host (hier mit IP)wird über einen
Communitynamen eine Sitzung
aufgebaut.
Das ist keine Session im Netzwerksinne,
es
ist ein Objekt innerhalb des Perlscriptes,
mit dem bestimmte Aktionen ( wie zum Beispiel
der get_request ) ausgeführt werden kann.
Standardmäßig wird über Port 161 kommuniziert.
Zusätzlich wird eine Error-Referenz erzeugt,
über die Fehlermeldungen ausgelesen werden
können.
- Zeile 9
- Festlegen eines OIDs, der abefragt werden
soll.
- Zeile 11
- Der get_request wird ausgeführt. Der Rückgabewert
($response) ist eine Hashreferenz.
- Zeile 12
- Die Session wird geschlossen, dadurch werden
die Socket geschlossen, Puffer geleert,
die
Error-Referenz gelöscht, kurz : Speicherplatz
wird freigegeben und aufgeräumt.
- Zeile 14
- Die Hashreferenz $response wird abgefragt.
Dies geschieht durch Angabe des OIDs, der
hier der Key des Hashes ist. Da der Hash
keinen Namen trägt ( anonymer Hash ), erfolgt
der Zugriff auf den Value in der Form $response->{$key}.
Vergleich von benannten und anonymen Hashes
- Benannte Hashes :
- %hash =( 'eins',1,'zwei',2,'drei',3 )
$value = $hash{'eins'}
- Anonyme Hashes :
- $hash_ref = { 'eins',1,'zwei',2,'drei',3
}
$value = $hash_ref->{'eins'}