.: HosiriS :.

Informatica e non solo

Classi: Monitor server

Posted by hosiris su dicembre 2, 2009

Presento una serie di articoli in cui ho deciso di raccogliere le classi che creerò col tempo… inizio subito con quelle già pronte.
Oggi descrivo la classe Monitor: cioè come monitorare i servizi attivi sul server!


/*
* CLASSE PER MONITORARE STATO SERVIZI SERVER
*/
class Monitor
{
    public $dominio;
    public $porta;

    public function Monitor($dom)
    {
        $this->dominio = $dom;
    }

    public function monitora($port)
    {
        $fp = @fsockopen($this->dominio, $port, $errno, $errstr, 10);
        if(!$fp) return ‘DOWN’;
        else return ‘UP’;
    }
}

Codice facilissimo da intuire e soprattuto trovabile ovunque in rete, non fa altro che tentare di aprire un canale di connessione con un servizio, se la connessione avviene con successo viene ritornato il valore ‘UP’. Nelle mie applicazioni preferisco questa versione dell’IF:


if(!$fp) return '<img src="rosso.jpg" alt="" />';
else return '<img src="verde.gif" alt="" />';

in cui il semplice testo è stato sostituito con delle immagini.
Ho preferito non implementare la variabile $port come proprietà della classe in modo da poter decidere all’esterno della classe quali porte monitorare, tramite una soluzione del genere:


$porte = array(
        'FTP'=>'21',
        'SSH'=>'22',
        'HTTP'=>'80',
        'SMB'=>'445',
        'MySQL'=>'3306');
$mon = new Monitor('localhost');
foreach($porte as $nome=>$porta)
{
    echo 'Stato servizio '.$nome.': '.$mon->monitora($porta);
}

Ottenendo il seguente risultato:
Schermata

Da notare la possibilità di inserire un dominio diverso da localhost, in questo modo avremo i servizi attivi su quell’host… un semplicissimo port mapping.

Saluti alla prossima classe

2 Risposte to “Classi: Monitor server”

  1. pask said

    ma sono classi php o uno script da eseguire via shell?

    • hosiris said

      Ciao Pask, questa è una classe php.
      Da shell si può usare nmap, che un port scanner, direi che la mia classe a confronto non è niente perchè nmap restituisce qualsiasi informazione tu voglia sul pc analizzato!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: