2010-04-25 9 views
2

Curieux. Je commence à diffuser en ligne des matchs de football au lycée, et il utilise un programme pour diffuser les flux de mon ordinateur. Toutefois, lorsque je ferme le programme ou l'ordinateur, le serveur se déconnecte et les invités ne peuvent pas accéder aux flux.Afficher l'état du serveur (activé ou désactivé) sur la page Web

Existe-t-il un type de code que je puisse publier sur mon site Web pour indiquer à mes invités si le serveur est allumé ou éteint? Je dirais que ce serait un simple code, un script php ou quelque chose qui vérifie périodiquement si un site est en ligne et affiche ensuite ON ou OFF.

+0

Je ne dirais pas que cela appartient à ServerFault, comme l'a dit un électeur proche. Il s'agit de programmer un moyen de détecter si un serveur est en ligne. Le verbe "programmation" a préséance sur le nom "serveur" ici. – Matchu

+0

haha, qui a fait un tag appelé "as"? très descriptif. –

+0

@darren: comme c'est en fait un inter-assembleur de macro intéressant. J'espère que c'est l'origine de l'étiquette de toute façon ... – Joe

Répondre

1

Deux options ici, la première est que vous pouvez demander une réponse à partir du serveur distant et si elle n'existe pas (après un certain délai), prétendre qu'elle est hors ligne. Vous pouvez mettre en cache ceci si les temps de réponse peuvent être plus lents que le temps que les utilisateurs voudront attendre, ou enfoncer ceci dans une requête AJAX qui peut ensuite retirer le lecteur vidéo, afficher l'avis, etc. en cas d'échec.

L'autre solution consiste à vérifier la panne d'alimentation et à afficher un message hors ligne du serveur.

+0

AJAX est, bien sûr, restreint par la politique de domaine. – Matchu

+0

Si le site Web est example.com et que le serveur de flux est feed.example.com, vous pouvez y aller. – Matchu

+0

Je n'étais pas assez verbeux dans ma référence à AJAX. Il n'y a aucune raison pour que le script AJAX envoie un ping au serveur directement, cela peut être (et DEVRAIT) être accompli par un script "ping" de proxy sur le même domaine. – Aea

5

EDIT: utilisez @fsockopen ou vous obtiendrez un avertissement Cannot connect to the server que vous pouvez ignorer puisque c'est ce que vous essayez de vérifier.

$ping = @fsockopen('myURL or IP', 80, $errno, $errstr, 10); 
if (!$ping) // site is down 

par exemple:

<?php 
$URL = 'randomurlfortestingpurposes.com'; 
$ping = @fsockopen ($URL, 80, $errno, $errstr, 10); 
(!$ping) ? $status = $URL.' is down' : $status = $URL.' is up'; 

echo $status.'<br>'; 

$URL = 'google.com'; 
$ping = @fsockopen ($URL, 80, $errno, $errstr, 10); 
(!$ping) ? $status = $URL.' is down' : $status = $URL.' is up'; 

echo $status; 
?> 

Sorties

randomurlfortestingpurposes.com is down 
google.com is up 
+0

Hmm ... J'ai essayé ce script PHP. J'ai placé l'adresse IP dans la section d'URL et ai changé le port à 86 (c'est le port correct) et quand je télécharge mon dossier de PHP à mon serveur, il me donne l'avis hors ligne tandis qu'il a Google comme en ligne. Je peux confirmer que le serveur est en ligne. J'ai vérifié http://ping.eu/port-chk/ et cela confirme que l'IP/Port est opérationnel. J'ai essayé de nombreux autres scripts PHP similaires à celui ci-dessus, mais ils me donnent toujours une erreur hors ligne. Une idée de ce que je fais mal? – Daniel

0

Vous pouvez utiliser le PEAR-Package "NET_Ping" ping votre serveur.