fugu
Goto Top

Erreichbarkeit von Netzwerk-Geräten prüfen

Guten Morgen Programmierprofis!

Ich hänge gerade mal wieder an einem selbst geschaffenen Problem face-smile
Und zwar möchte ich gerne in regelmäßigen Abständen prüfen, ob meine im Netzwerk befindlichen Geräte noch erreichbar sind, oder ob irgendwo eine Störung vorliegt.

Gerät A - erreichbar auf Port 80
Gerät B - erreichbar auf Port 1902
Gerät C - erreichbar auf Port 5000

Gibt es in PHP eine Funktion, die ich so ein eine Schleife packen kann, dass ich z. B. im 15 Min. Rhythmus prüfen kann, ob alle Geräte auf ihren Ports noch antworten?

Start der Anfrage
- Gerät A - reagiert -> OK
- Gerät B - reagiert nicht
- Erneute Prüfung nach 15 Sek. - reagiert nicht
- Erneute Prüfung nach 15 Sek. - reagiert -> OK
- Gerät C - reagiert nicht
- Erneute Prüfung nach 15 Sek. - reagiert nicht
- Erneute Prüfung nach 15 Sek. - reagiert nicht
- Erneute Prüfung nach 15 Sek. - reagiert nicht -> Fehlermeldung verschicken
Ende der Anfrage

Wer will, kann mir auch gerne 'nen Code-Entwurf posten face-smile
Aber es würde mir schon sehr weiterhelfen, überhaupt die passende Funktion dafür zu finden...

Oder sollte ich dieses Projekt besser in Python angehen?

Danke für eure Antworten.
Fugu

Content-ID: 193856

Url: https://administrator.de/contentid/193856

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

aqui
aqui 07.11.2012 um 08:35:15 Uhr
Goto Top
...oder vielleicht was fertiges verwenden was das ganze mit ein paar Mausklicks erledigt wie Nagios oder Icinga ?!
MrNetman
MrNetman 07.11.2012 um 08:38:01 Uhr
Goto Top
Hi Fugu,

probier mal die Funktion: Telnet IP Port (z.B Telnet Router-ip 80)
Je nach Rückmeldung oder timeout kannst du deine Entscheidungen treffen.

Gruß
Netman
masterG
masterG 09.01.2013 um 14:47:12 Uhr
Goto Top
Ich hab das damals für meine Zwecke mit sockets gemacht.
$serverCheck = @fsockopen ("192.168.0.1", 5000, $errorno, $errorstr, 2);  

Und dann einfach den boolean Wert von $serverCheck auswerten (true oder false).

Die regelmäßigkeit kannst du entweder mit einem Cronjob machen oder du setzt das ganze Skript in eine while-Schleife und setzt einen sleep Befehl mit der dauer von 15 Minuten rein.

Gruß