Jump to content

Indicateur de serveur Online

Featured Replies

Posted

Hello

Je veint de mettre en place un serveur FTP et Web et je souhaiterais pouvoir indiquez sur mon site si le serveur et Online ou Offline :-D

@++ :transpi:

Edited by Boo54

Si ton site utilise PHP, c'est assez facile.

Il suffit que ta page web tente de se connecter à ton FTP (PHP possède des fonctions ftp). Ensuite, il suffit d'afficher le résultat de la tentative (sous forme d'une icône par exemple).

Une solution très simple à mettre en oeuvre en utilisant la fonction fsockopen()

Docs PHP

Si PHP n'est pas installé sur ton serveur, tu peux essayé de passer par un serveur intermédiaire (hébergement free par ex) en appelant le script via une image :

<img src="http://ton_hebergement_free.free.fr/script.php" alt="" />

avec un script PHP qui se charge de tester si l'accès à ton serveur est possible. Tu termines ce script en renvoyant une image correspondant à l'état) en utilisant un header("Content-type: image/png");

Tu vois le principe? (chuis pitetre pas très clair... :reflechis: )

Edited by ImoTheP

Bon, tu te fais deux images (offline et online), de paint à photoshop, tout est permis. Dans l'exemple qui suis, image en PNG, à modifier selon tes besoins.

Pour le script PHP :


<?php

// Test à faire avec la fonction fsockopen afin de vérifier l'état du serveur

$serveur = "www.serveur.com"; // Serveur à tester
$port = 80; // N° de port, 80 pour l'hhtp
$timeout = 30; // Timeout
$fp = fsockopen($serveur, $port, $errno, $errstr, $timeout); // $errno, $errstr renvoient les codes d'erreurs en cas d'échec, ne pas s'en préoccuper si pas de besoin
if($fp)
  $image = "online.png";
else
  $image = "offline.png";

// On balances les headers maintenant afin de renvoyer l'image
header("Content-Type: image/png");
header('Content-transfer-encoding: binary');
header('Content-length: '.filesize($image));
readfile($image);
?>

Tu appelles donc cette page via un simple <img src="http://tonserveurouyadupéhachepé.com/script.php" alt="" />

et normalement ça devrait marcher. J'ai pas testé si tout est vraiment ok, mais en gros c'est de ctte façon que tu peux procéder.

et si le site reçoit pas mal de requête de ce type ça serai peu être une bonne idée de cacher le résultat pour au moins 4-5 minutes (avec a la limite un bouton forçant la re-actualisation) si il y a une sql à dispo tu peu cacher ça dedans autrement dans un fichier texte quelconque.

Archived

This topic is now archived and is closed to further replies.