Testare il server con CURL

di il
3 risposte

Testare il server con CURL

Salve,
avrei bisogno di un aiuto nello sviluppare un piccolo script che mi controlli se il mio server risponde e in quanto tempo. Mi spiego meglio.
Sto progettando, tramite la funzione CURL di php, uno script che, tramite l'ip del server ed il CONNECTTIMEOUT mi vede se il server è online e, se lo è, mi conta quanti secondi impiega per rispondere. A questo punto, se impiega oltre determinati secondi (40) mi deve stampare a video i secondi impiegati.
Ecco il codice scritto fin'ora:

$curl = curl_init();
$timeout = 40;
curl_setopt ($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_PROXY, $ip_server);
$risultato = curl_exec ($curl);
curl_close ($curl);

Ora, come lo inserisco in un ciclo che appunto controlla che se vengono superati i 40 secondi mi fa la stampa a video?
Grazie

3 Risposte

  • Re: Testare il server con CURL

    max1850 ha scritto:


    Salve,
    A questo punto, se impiega oltre determinati secondi (40) mi deve stampare a video i secondi impiegati.
    Se non erro, dal codice che hai scritto, cURL va in timeout dopo 40 secondi e quindi ritornerà false (immagino, in verità non lo uso molto e lo conosco poco), quindi o la frase sopra doveva essere "se impiega meno di determinati secondi (40) mi deve stampare..." oppure hai già un problema.

    Per stampare a video i secondi impiegati, credo che l'unico modo sia usare time prima di curl_exec (assegnare il valore ad una variabile) e dopo curl_exec e fare la differenza tra i due.

    Il ciclo puoi semplicemente infilarlo in un do { ... } while (true); che è un loop infinito, ed all'interno fare le tue cose.
    Io personalmente, però, propenderei per uno script senza loop ed assegnato ad un cronjob ad esempio una volta al minuto, così da evitare di avere un processo sempre in esecuzione.
  • Re: Testare il server con CURL

    Sto provando a fare uno script di prova per vedere se un IP è raggiungibile.. questo va bene?

    Inoltre, ho provato a stampare il $risultato, ma non mi esce nulla..
    echo "Risultato: ".$risultato;
    Come faccio a capire dov'è l'errore? è un valore booleano?

    Ho anche aggiunto all'inizio dello script, il codice x vedere gli errori, ma non mi da nulla..
    ini_set('display_errors','On');
    error_reporting(E_ALL);
    
    Grazie
  • Re: Testare il server con CURL

    emanuele45 ha scritto:


    max1850 ha scritto:


    Salve,
    A questo punto, se impiega oltre determinati secondi (40) mi deve stampare a video i secondi impiegati.
    Se non erro, dal codice che hai scritto, cURL va in timeout dopo 40 secondi e quindi ritornerà false (immagino, in verità non lo uso molto e lo conosco poco), quindi o la frase sopra doveva essere "se impiega meno di determinati secondi (40) mi deve stampare..." oppure hai già un problema.

    Per stampare a video i secondi impiegati, credo che l'unico modo sia usare time prima di curl_exec (assegnare il valore ad una variabile) e dopo curl_exec e fare la differenza tra i due.

    Il ciclo puoi semplicemente infilarlo in un do { ... } while (true); che è un loop infinito, ed all'interno fare le tue cose.
    Io personalmente, però, propenderei per uno script senza loop ed assegnato ad un cronjob ad esempio una volta al minuto, così da evitare di avere un processo sempre in esecuzione.
    In effetti c'è un errore di logica di fondo..
    Proverò a seguire i tuoi consigli.
    Ciao e grazie
Devi accedere o registrarti per scrivere nel forum
3 risposte