[PHP] verificare se un dispositivo e' online

Discussione in 'PHP' iniziata da Claudia1, 26 Agosto 2016.

  1. Claudia1

    Claudia1 Nuovo Utente

    Registrato:
    9 Giugno 2015
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Buongiorno a tutti,
    premetto che conosco molto poco il PHP.
    Ho delle telecamere IP installate su alcune ditte che registrano su un server remoto non il locale.
    Una volta al giorno devo controllare se le Cam sono online e lo faccio in questo modo:
    Sulla pagina Web digito http://(indirizzo pubblico):(numero della porta) e se vedo che la Cam risponde Inserisci Username e Password, capisco che e' online.
    Volevo usare il PHP se possibile per velocizzare la cosa.
    Ho scaricato alcuni esempi in PHP per fare un controllo Ping ma da quanto ho capito funziona solo in locale, allora ho provato ad usare uno script PHP per verificare se un sito e' online sostituendo L' url con indirizzo IP e numero porta , ma non funziona allego pezzi di codice che ho usato.
    <?php
    ini_set("default_socket_timeout","05");
    set_time_limit(5);
    $f=fopen("http://217.133.xx.xx:1082","r");
    $r=fread($f,1000);
    fclose($f);
    if(strlen($r)>1) {
    echo("<span class='online'>Online</span>");
    }
    else {
    echo("<span class='offline'>Offline</span>");
    }
    ?>

    e poi questo:
    $title = "Simple Server Status"; // website's title
    $servers = array(
    'Hotel Coluccini Cam1' => array(
    'ip' => '217.133.xx.xx:1082',
    /* 'port' => 1082, */
    'info' => 'Hosted by The Cloud',
    'purpose' => 'Web Search'
    ),

    Potete darmi un idea di come posso fare?
    Grazie anticipatamente.
     
  2. livellacri

    livellacri Utente Attivo

    Registrato:
    18 Agosto 2016
    Messaggi:
    108
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Sesso:
    Maschio
    Puoi usare cURL
    PHP:
    <?php
    $ch 
    curl_init();
    curl_setopt($chCURLOPT_URL'http://indirizzopubblico:porta');
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT5); 
    ob_start();
    curl_exec($ch);
    ob_end_clean();
    if (
    curl_error($ch)==null) {
        echo(
    "<span class='online'>Online</span>");
    }
    else {
        echo(
    "<span class='offline'>Offline</span>");
    }
    curl_close($ch);
    ?>
     
  3. Claudia1

    Claudia1 Nuovo Utente

    Registrato:
    9 Giugno 2015
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Grazie per la risposta ma il risultato e' sempre Offline che sia connessa o no.
     
  4. livellacri

    livellacri Utente Attivo

    Registrato:
    18 Agosto 2016
    Messaggi:
    108
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Sesso:
    Maschio
    Io ho provato con la mia ipcam e funziona.
    Prova questo codice e posta l'errore che viene visualizzato:
    PHP:
    <?php
    $ch 
    curl_init();
    curl_setopt($chCURLOPT_URL'http://indirizzopubblico:porta');
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT5);
    ob_start();
    curl_exec($ch);
    ob_end_clean();
    if (
    curl_error($ch)==null) {
      echo(
    "<span class='online'>Online</span>");
    }
    else {
      echo 
    curl_error($ch);
    }
    curl_close($ch);
    ?>
     
  5. Claudia1

    Claudia1 Nuovo Utente

    Registrato:
    9 Giugno 2015
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Connection timed out after 5016 milliseconds
     
  6. livellacri

    livellacri Utente Attivo

    Registrato:
    18 Agosto 2016
    Messaggi:
    108
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Sesso:
    Maschio
    Prova ad aumentare il tempo di timeout.
    Sostituisci la 5ª riga con:
    PHP:
    curl_setopt($chCURLOPT_CONNECTTIMEOUT60);
     
  7. Claudia1

    Claudia1 Nuovo Utente

    Registrato:
    9 Giugno 2015
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Niente sempre Offline a questo punto non so se il problema e' la Cam o il router
    ma da remoto la raggiungo sempre.
     
  8. livellacri

    livellacri Utente Attivo

    Registrato:
    18 Agosto 2016
    Messaggi:
    108
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Sesso:
    Maschio
    Una curiosità: lo script lo esegui in locale o su un server a pagamento?
    L'unico dubbio che mi viene è che l'IP del server sia nella blacklist della cam oppure che il server non permette richieste curl verso server esterni.
     
  9. Claudia1

    Claudia1 Nuovo Utente

    Registrato:
    9 Giugno 2015
    Messaggi:
    14
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Lo script lo eseguo da Aruba
     
  10. livellacri

    livellacri Utente Attivo

    Registrato:
    18 Agosto 2016
    Messaggi:
    108
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Sesso:
    Maschio
    Prova ad eseguirlo in locale (installando XAMPP) oppure, se preferisci, scrivimi l'IP tramite messaggio privato e provo io.
     
Sto caricando...

Condividi questa Pagina