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

    [PHP] Test Client su rete LAN

    Ciao,

    sto facendo una paginetta con una tabella che contiene tutte le macchine della rete che hanno un IP fisso.
    Vorrei far si che, premendo un bottone, uno script mi faccia il test della connettività e mi risponda se Presente o meno un certo IP.
    Tipo Ping...

    Però ho gia provato uno script che usa il ping del sistema e ci sono svariati problemi:
    1. non è detto che su windows, il ping, sia lo stesso che su linux. (anzi.. è detto: proprio diverso!).
    2. è moooolto lento. (se devo fare un test su piu macchine ci mette troppo).
    3. dovrei inoltre riportare il risultato del ping su una variabile, fare un check delle parole per vedere la positività del risultato...

    esiste una funzione integrata di PHP ? alla quale passo un indirizzo IP (una maschera, un gateway...) e mi dice se questo esiste o meno? In modo molto rapido.... oppure in modo parallelo se le richieste sono multiple?

  2. #2
    ecco, tieni, il file con la lista degli ip deve essere così strutturato:
    ip1
    ip2
    ip3
    ...
    ipn

    Codice PHP:
    <?
    error_reporting
    (0);
    set_time_limit(0);

    $ip=file('ipfiletable');

    for(
    $i=0;$i<count($ip);$i++)
    {
        
    $ip[$i]=str_replace("\n",'',$ip[$i]);
        
    $ip[$i]=str_replace("\r",'',$ip[$i]);
        
        
    $fp=fsockopen('udp://'.$ip[$i],16,$errno,$errstr,5);
        
        if(
    $fp)
        {
            echo 
    $ip[$i].' OK'."\n";
            
    fclose($fp);
        }
        else
            echo 
    $ip[$i].' NO'."\n";
    }
    ?>

  3. #3
    correzione...
    ho visto che con l'altro metodo ti dava sempre un OK come risposta...questo è un pò diverso...ma funziona di sicuro...il file ora deve essere strutturato così
    ip1|portaAperta
    ip2|portaAperta
    ip3|portaAperta
    ...
    ipn|portaAperta
    per porta aperta si intende una qualsiasi porta aperta sul pc che vuoi controllare, http, ftp, ssh, telnet, netbios (win la dovrebbe avere aperta se sono computer in rete), ecc ecc
    Codice PHP:
    <?
    error_reporting
    (0);
    set_time_limit(0);

    $ip=file('ipfiletable');

    for(
    $i=0;$i<count($ip);$i++)
    {
        
    $ip[$i]=str_replace("\n",'',$ip[$i]);
        
    $ip[$i]=str_replace("\r",'',$ip[$i]);
        
    $ip[$i]=explode('|',$ip[$i]);
        
        
    $fp=fsockopen($ip[$i][0],$ip[$i][1],$errno,$errstr,30);
        
        if(
    $fp)
        {
            echo 
    $ip[$i][0].' OK'."\n";
            
    fclose($fp);
        }
        else
            echo 
    $ip[$i][0].' NO'."\n";
    }
    ?>

  4. #4
    allora provo! grazie



    PS: ma se nn ho porte aperte? nel cas avessi stampanti? oppure adattatori di rete per stampanti sprovviste, quale porta dovrei utilizzare?

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.