Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [PHP] Pingare un ip con ciclo di controllo

    Salve a tutti ho trovato questa funzione

    codice:
    passthru('ping 192.168.1.249', $res);
    echo $res;
    siccome sono alle prime armi non ho ben capito come utilizzarla, a me servirebbe che dopo aver ricevuto i 4 pacchetti, la funzione stampasse a video con ciclo di controllo if/else
    online oppure offline, oppure anche con un altra funzione più semplice che dia TRUE se riesce a pingare oppure FALSE se non trova risposa.

    Ciao.
    MaSsimo64.

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ci tengo a precisare che è un metodo molto rudimentale, probabilmente trovi delle classi già fatte su phpclasses.

    Comunque funge:
    codice:
    <?php
    exec("ping -c 1 192.168.1.3 ",$result);
    echo "<pre>";
    print_r($result);
    echo "</pre>";
    foreach($result as $key => $linea) {
      if(strpos($linea,"statistics")) {
        if(strpos($result[$key+1],"0 received")) {
          echo "non risponde al ping";
        } else {
          echo "risponde al ping";
        }
      }
    }
    echo "
    ";
    echo "
    ";
    echo "
    ";
    $result=array();
    exec("ping -c 1 10.0.0.1",$result);
    echo "<pre>";
    print_r($result);
    echo "</pre>";
    foreach($result as $key => $linea) {
      if(strpos($linea,"statistics")) {
        if(strpos($result[$key+1],"0 received")) {
          echo "non risponde al ping";
        } else {
          echo "risponde al ping";
        }
      }
    }
    ?>
    Sono 2 blocchi perchè ho provato un ip che risponde e uno no:

    Il risultato è il seguente:
    codice:
    Array
    (
        [0] => PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
        [1] => 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.040 ms
        [2] => 
        [3] => --- 192.168.1.3 ping statistics ---
        [4] => 1 packets transmitted, 1 received, 0% packet loss, time 0ms
        [5] => rtt min/avg/max/mdev = 0.040/0.040/0.040/0.000 ms
    )
    
    risponde al ping
    
    
    Array
    (
        [0] => PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
        [1] => 
        [2] => --- 10.0.0.1 ping statistics ---
        [3] => 1 packets transmitted, 0 received, 100% packet loss, time 0ms
        [4] => 
    )
    
    non risponde al ping
    ciao

  3. #3
    Perfetto proprio come mi serviva, ti ringrazio molto per la disponibilità, mi chiedevo però sarebbe troppo pesante creare una ricorsione magari ogni 5min per avere un sistema di refresh in tempo reale?

    ciao.

  4. #4
    posso chiederti lo scopo di tutto questo ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Siccome sono il gestore di un sito che si appoggerà ad un Persistent world di Neverwinter Nights 2 volevo che gli utenti potessero vedere se il server è online senza aprire il prog.

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da MaSsimo64
    Perfetto proprio come mi serviva, ti ringrazio molto per la disponibilità, mi chiedevo però sarebbe troppo pesante creare una ricorsione magari ogni 5min per avere un sistema di refresh in tempo reale?

    ciao.
    Puoi appoggiarti a cron?

  7. #7
    il problema principale è piuttosto vedere se il tuo hoster ti permette di lanciare il comando ping

  8. #8
    Si non c'è prob dato che il server (di gioco) è mio, ho impostato i permessi del firewall per le icmp per pemettere il ping.


  9. #9
    credo che daniele dll si riferisse al server su cui è ospitato il sito, nn tutti (anzi pochi) consentono di eseguire comandi di quel tipo

  10. #10
    Ciao, volevo sapere se la shell_exec di php è bloccante o meno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.