Suche: Script zum überprüfen von Serverdiensten

gizmo21

Registered User
Hallo!

Ihr kennt doch sicherlich diese Scripte, die manche Hoster auf Ihrer Website einsetzen um den Kunden zu zeigen welche Server online sind, und bei welchen Diensten es im Moment Schwierigkeiten gibt etc...


Ich suche genau so etwas. Mir kommt es allerdings überwiegend darauf an, dass dieses Script auch die Überprüfung von Nameservern unterstützt. Bevorzugen würde ich ein PHP-Skript.


Ich habe schon gesucht wie ein Irrer, aber nichts brauchbares gefunden. Evtl. hat einer von Euch einen guten Tipp?!
Natürlich bin ich auch über jeden Hinweis dankbar, wie ich soetwas selbst in PHP realisieren könnte. In PHP bin ich zwar kein Experte, habe aber Grundkentnisse.



Danke schonmal im Vorraus,
giz
 
Ich hatte mal ein Script auf meinem Server das hat folgdenes gemacht:

sie per Telnet auf IP + Port angemeldet...wenn man zB testen wollte ob FTP läuft dann hat das Script 192.168.1.1 + Port 21 geöffnet , geschaut ob ein Reply kam und wenn ja => Dienst Online...
 
@Sandmann
Wäre das nicht eine Projekt-Idee?
Ein C-Programm für den Tasktray, welches (mehrere) Server nach (beliebig einstellbar) erreichbaren Ports scannt?

huschi.
 
djrick said:
Ich hatte mal ein Script auf meinem Server das hat folgdenes gemacht:

sie per Telnet auf IP + Port angemeldet...wenn man zB testen wollte ob FTP läuft dann hat das Script 192.168.1.1 + Port 21 geöffnet , geschaut ob ein Reply kam und wenn ja => Dienst Online...


Hab das mal ausprobiert. Leider ohne Erfolg. HTTP und FTP lassen sich per Telnet überprüfen. Sobald ich jedoch per Telnet auf meinen Nameserver verbinden will, bekomme ich ein "Connection refused" obwohl der DNS läuft und Anfragen per dig beantwortet.


fsockopen werde ich mir im PHP-Handbuch mal genauer ansehen. Auf den ersten Blick könnte es wirklich das sein, wonach ich suche.



gruß,
giz
 
@Huschi

Warum nicht. Hab es gleich mal zur Diskussion freigegeben:
 
Sandmann said:
Also ich würde hierfür die Funktion fsockopen verwenden.
So sollten eigentlich auch diese ganzen Monitor-Services im Netz laufen. Einfach die Ports mit fsockopen oder so checken.
Telnet halte ich da nicht als sehr geeignet.
 
gizmo21 said:
Sobald ich jedoch per Telnet auf meinen Nameserver verbinden will, bekomme ich ein "Connection refused" obwohl der DNS läuft und Anfragen per dig beantwortet.
Vieleicht weil DNS-Anfragen nicht über TCP-Packete sondern UDP-Packete laufen?

huschi.
 
Huschi said:
Vieleicht weil DNS-Anfragen nicht über TCP-Packete sondern UDP-Packete laufen?

huschi.

Das ist wohl der Grund. "allow-tcp" ist bei mir auf "disabled".
Habe mittlerweile auch ein kostenfreies Monitoring Script bei freshmeat gefunden. Nennt sich "php open monitor" und macht genau das (im Grunde genommen sogar viel mehr) was ich mir vorstelle. Leider geht das überprüfen des Nameservers nur, wenn ich entweder AXFR oder TCP aktiviere ... was bei meinem Setup allerdings unnötig wäre. :cool:

Ich hab's dann auch noch mit einem Code-Schnippsel versucht, den ich bei PHP.net entdeckt und auf meine Bedürfnisse angepasst habe.

PHP:
$onlinecheck = fsockopen("udp://127.0.0.1", 53, $errno, $errstr);
	if (!$onlinecheck) {
	echo "Nameserver down $errno , $errstr";
	}else{
	echo "Nameserver online";
	}

Leider liefert mir "mein" Script (egal ob der Nameserver läuft, oder nicht) immer Nameserver online :eek:



gruß,
giz
 
Ich hab mich heute morgen nochmal durch das PHP-Handbuch gekämpft und bin dabei auf socket_get_status, fwrite und fread gestoßen. Daraus ist dann folgendes (Mini-)Script entstanden.

PHP:
<?
$ip = "127.0.0.1";
$port = "53";

$connect = fsockopen("udp://".$ip, $port);
fwrite($connect, 1);
fread($connect, 1);
$status = socket_get_status($connect);
$timeout = time() +5;

if($status["unread_bytes"] == 0 or time() >=$timeout) {
   echo "DNS Offline";
   exit;
   }else{
   echo "DNS Online";
}

?>


Damit lässt sich der Status meines Nameservers erfolgreich testen.
Ich poste das Script hier, weil man ja nie weiß ob nicht jemand anderes dafür später vielleicht mal eine Verwendung hat.


Mein Problem ist damit erledigt und ich möchte mich für Eure Mithilfe bedanken!



ciao,
giz
 
Back
Top