Supervision de ports

Contenu du snippet

Ce script permets de superviser les services lancés sur un serveur avec la fonction @fsockopen. Les informations (adresses ip et ports) sont stockés dans une base de donnée.
En cas de ports libre tout va bien sinon création d'un fichier log avec heure, date, adresse ip et ports du serveur en question.
Script commenté (c'est mon premier alors j'attends vos remarques). C'est une adaptation du script http://www.phpcs.com/codes/STATUS-SERVEUR-PHP_39503.aspx

Source / Exemple :


<?php
     
     mysql_connect("localhost", "root", ""); // Connexion à MySQL
     mysql_select_db("supervision"); // Sélection de la base 

     $reponse = mysql_query("SELECT * FROM serveur"); // Requête SQL de la table serveur
     
     while ($donnees = mysql_fetch_array($reponse) )
     { // Début boucle while

     $ip = $donnees['ip_serveur']; // adresse ip du serveur
     $ports = $donnees['ports_serveur']; // ports du serveur

     
     $connect = TRUE; // Autoriser ou non la connexion
        
    	
     // Mise en place du texte du nom de serveur
     echo "Le serveur $ip port $ports";
     // Verification du statut
    
     if (! $sock = @fsockopen($ip, $ports, $num, $error, 5))
     {
     // Si il est hors ligne
     echo ' est : <font color="#CC0000">DECONNECTE</font> !';
     
     // Si problème création du fichier log
     echo "<br />";
     echo "Création du fichier log";
     $fp=fopen("/var/www/test/log.txt","a"); // Ouverture du fichier avec le mode écriture
     fputs($fp, "\n"); // on va a la ligne
     $date = date("d-m-Y"); // On recupere la date de l'incident
     $heure = date("H:i"); // On recupere l'heure  de l'incident
     fputs($fp, "$date $heure $ip $ports"); // On écrit la date, l'heure, l'ip et le port concerné
     fclose($fp); // Fermeture du fichier
     }	 
	  
     else{
     // Si il est en ligne
     echo ' est : <font color="#00CC00">CONNECTE</font> !';
    
     fclose($sock);
    
     }	
     echo "<br />";
	
     } // Fin boucle while
     mysql_close(); // Déconnexion de MySQL
     ?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.