Net::SNMP
Get-Request

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'}