Tutorials > > Tutorial-Detail: Erreichbarkeit eines Servers testen
Erreichbarkeit eines Servers testen
Für die verschiedensten Dinge ist es nötig, zu prüfen, ob ein Server erreichbar ist. Sei es für einen Spieleserver, für Sharing-Programme oder externe Server. Mit dieser Funktion kann man ganz einfach prüfen, ob ein ganz bestimmter Server erreichbar ist.Um es gleich nochmal herauszustellen: Mit dieser Funktion kann man keine Links überprüfen. Dafür sind andere Funktionen da.
Stattdessen kann man hier die Erreichbarkeit eines ganzen Servers testen. Dafür kann man hier auch Port-Angaben machen, um so auch die Erreichbarkeit von Gameservern wie CS (CounterStrike) oder UT (Unreal Tournament) sowie die von Sharing-Tools wie emule zu überprüfen. Denn diese besitzten nicht den "normalen" Internetseiten-Port mit der Nummer 80.
Dafür nutzt man folgende Funktion:
| Ist ein Server erreichbar (mit Port-Angabe)?: | |
1 |
<?
|
Aufgerufen wird das mit folgendem Einzeiler:
| Der Aufruf: | |
1 |
<?
|
Die ausschlaggebene Zeile in der Gesamtfunktion hier ist die 4. Zeile mit fsockopen(). Diese Funktion öffnet eine Verbindung zu dem Server, der ihm beim Aufruf übergeben wurde (hier also www.yubb.de). Dabei ist es wichtig, nicht das Protokoll (das mit "XZY://") mit zu benutzen.
Als zusätzliche Angabe, die aber optional ist, ist der Port. In diesem Beispiel wird der Server www.yubb.de auf Erreichbarkeit des Ports 21 (FTP) überprüft. Diese Angabe ist, wie gesagt, nicht zwingend: Ist kein Port angegeben, so wird der HTTP-Port 80 überprüft.
Das wars dann auch, hier noch einige wichtige Ports:
21: FTP
25: SMTP (E-Mail-Versand)
80: HTTP (Internetseiten)
110: POP3 (E-Mail-Empfang)
Geschrieben von Phil Marx am 18.06.2004 (2500x gelesen)

Ich mache immer fopen(); in solchen Fällen
entweder ich kann die Datei öffnen, die ich brauche (auch auf anderen Servern) - oder nicht.
Zur Funktion fsockopen: man kann sicher auch die IP eingeben, oder?
entweder ich kann die Datei öffnen, die ich brauche (auch auf anderen Servern) - oder nicht.
Zur Funktion fsockopen: man kann sicher auch die IP eingeben, oder?
Geschrieben von René
Die IP geht auch, aber bei fopen haste immer das Problem, dass du keine Portangebe machen kannst...
Geschrieben von Phil Marx
Also mit Counterstrike-Servern funktioniert es nicht, das habe ich gerade getestet!
Geschrieben von DiWoWo
fsockopen() wird AFAIK nicht von allen Webhostern unterstützt.
Ansonsten sag ich nur: Quelltext ist die Weiterentwicklung eines Comments von php.net, aber wenigsten gut beschrieben und erklärt.
Ansonsten sag ich nur: Quelltext ist die Weiterentwicklung eines Comments von php.net, aber wenigsten gut beschrieben und erklärt.
ich würde anstatt
$f=fsockopen($url, $port=80, $errno, $errstr, 10);
$f=@fsockopen($url, $port=80, $errno, $errstr, 10);
benutzen.
Dann bleiben die lästigen fehlermeldungen weg wenn der port nicht antwortet.
$f=fsockopen($url, $port=80, $errno, $errstr, 10);
$f=@fsockopen($url, $port=80, $errno, $errstr, 10);
benutzen.
Dann bleiben die lästigen fehlermeldungen weg wenn der port nicht antwortet.
