Netzwerkgeräte: Verfügbarkeit mittels Perl-oneliner prüfen

Aus FHEMWiki
Info green.pngDas FHEM-Modul PRESENCE erfüllt den selben Zweck

Um eine einfache Prüfung von Netzwerkgeräten durchzuführen, kann die Perlerweiterung NET::Ping benutzt werden.

Definition:

define myTest at +*00:00:30 {use Net::Ping;;my $p=Net::Ping->new("tcp", 1,64);;my @ip=('192.168.0.1','192.168.0.2','192.168.0.4','192.168.0.5');;
foreach(@ip){if($p->ping("$_")){Log 1,"$_ antwortet";;}else{Log 1,"$_ antwortet nicht";;}}}

Erläuterungen:

Dieser Test benutzt Net::Ping, dabei kann Ping nicht in seiner "stärksten" Version als ICMP-Ping benutzt werden, da für einen ICMP-Ping root-Rechte benötigt werden. Daher wird "nur" der TCP-Ping verwendet, der aber bei normalen Geräten auch anstandlos funktionieren sollte (getestet mit Debian, Ubuntu, Windows 7).

In dem Array @ip werden die IP-Adressen eingetragen. Danach wird durch eine Schleife jede dieser Adressen angepingt.

Ist die IP-Adresse erreichbar, dann wird eine positive Meldung ins Log geschreiben, wenn nicht, dann eine negative.

Das Skript lässt sich natürlich den Notwendigkeiten, besonders was im Fehlerfall durchgeführt werden soll, anpassen.