Netzwerkgeräte: Verfügbarkeit mittels Perl-oneliner prüfen: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Drhirn (Diskussion | Beiträge) K (Hinweis auf PRESENCE-Modul eingebaut) |
||
Zeile 1: | Zeile 1: | ||
{{Randnotiz|RNTyp=Info|RNText=Das 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. | Um eine einfache Prüfung von Netzwerkgeräten durchzuführen, kann die Perlerweiterung NET::Ping benutzt werden. | ||
Aktuelle Version vom 15. Juni 2018, 13:31 Uhr
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.