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

    mettere a richiesta IP UPTIME e banda up/down in un file di testo

    Scusate per il topic lunghissimo ma era per essere chiaro...

    ... ho bisogno di mostrare sul mio sito ip, uptime, e banda ingresso/uscita.

    Qualcuno ha mai avuto bisogno di farlo? Posso avviare un'applicazione linux da php?

    -So che sarebbe semplicissimo mostrare il mio ip ma essendo sotto router mi mostra l'ip che ho sotto rete locale e mi serve invece un qualcosa di più complesso (tipo richiederlo a qualche sito tipo myip.com e schiaffarlo su un file di testo)

    -Un mio amico ha già creato un'applicazione per mostrare banda uscita/ingresso e devo solo trovare un modo per trasportare il risultato elaborato in un file di testo.

    -Per l'uptime non so come fare... come potrei scrivere su un file l'uscita che da il programma "uptime" che avvio da SSH?

    Grazie in anticipo

    P.S. Siccome ovviamente mostro il tutto con php... vorrei tentare di risolvere questi problemi il più possibile con php e prima di tutto vorrei sapere se posso avviarci dei programmi "on demand"
    -_-"

  2. #2
    E' una domanda troppo stupida?

  3. #3
    Gente ho risolto e per "condire" questo forum di risposte scrivo la soluzione.
    Potrebbe venirne fuori una perla perchè in un solo programmino php mostro sul mio sito:
    Ip del client connesso.
    Ip del mio server.
    UpTime in italiano.
    Numero Visite (contatore) aggiornato con controllo IP client.

    Codice PHP:
    <?php

    ///////////////////// IP ////////////////////////
    function getip() {
    if (isSet(
    $_SERVER)) {
     if (isSet(
    $_SERVER["HTTP_X_FORWARDED_FOR"])) {
      
    $realip $_SERVER["HTTP_X_FORWARDED_FOR"];
     } elseif (isSet(
    $_SERVER["HTTP_CLIENT_IP"])) {
      
    $realip $_SERVER["HTTP_CLIENT_IP"];
     } else {
      
    $realip $_SERVER["REMOTE_ADDR"];
     }

    } else {
     if ( 
    getenv'HTTP_X_FORWARDED_FOR' ) ) {
      
    $realip getenv'HTTP_X_FORWARDED_FOR' );
     } elseif ( 
    getenv'HTTP_CLIENT_IP' ) ) {
      
    $realip getenv'HTTP_CLIENT_IP' );
     } else {
      
    $realip getenv'REMOTE_ADDR' );
     }
    }
    return 
    $realip
    }

    $iptuo getip();
    /////////////////////////////////////////////////
    /////////////////////////////////////////////////
    ////////////////// CONTATORE ////////////////////
    $fpt "files/acount.txt";             // log file - chmod 666
    global $found;

                                        
    // opzioni
    $lock_ip =1;                         // controllo ip del client o no?
    $ip_lock_timeout =30;                 // in minuti prima di ricontare un client
    $fpt_ip "files/ip.txt";             // IP log file - chmod 666

    function checkIP($rem_addr) {
    $found=0;
      global 
    $fpt_ip,$ip_lock_timeout;
      
    $ip_array file($fpt_ip);
      
    $reload_dat fopen($fpt_ip,"w");
      
    $this_time time();
      for (
    $i=0$i<sizeof($ip_array); $i++) {
        list(
    $ip_addr,$time_stamp) = split("\|",$ip_array[$i]);
        if (
    $this_time < ($time_stamp+60*$ip_lock_timeout)) {
          if (
    $ip_addr == $rem_addr) {
            
    $found=1;
          } else {
            
    fwrite($reload_dat,"$ip_addr|$time_stamp");
          }
        }
      }
      
    fwrite($reload_dat,"$rem_addr|$this_time\n");
      
    fclose($reload_dat);
      return (
    $found==1) ? 0;
    }

    if (!
    file_exists($fpt)) {
      
    $count_dat fopen($fpt,"w+");
      
    $digits 0;
      
    fwrite($count_dat,$digits);
      
    fclose($count_dat);
    }
    else {
      
    $line file($fpt);
      
    $nAccessi $line[0];
      if (
    $lock_ip==|| ($lock_ip==&& checkIP($iptuo)==0)) {
        
    $count_dat fopen($fpt,"r+");
        
    $nAccessi++;
        
    fwrite($count_dat,$nAccessi);
        
    fclose($count_dat);
      }
    }
    /////////////////////////////////////////////////
    /////////////////////////////////////////////////
    /////////////// ALTRE VARIABILI /////////////////
    $bandafile "files/altridati.txt";
    $linea file($bandafile);
    $BandaIN $linea[0];
    $BandaOUT $linea[1];

    $ipfile "files/ping.txt";
    $riga file($ipfile);
    $ping$riga[0];

    $aperta=strpos ($ping"(")+1;
    $chiusa=strpos ($ping")")+1;
    $ipmiosubstr($ping,$aperta,$chiusa-$aperta-1);

    $UpTime = @exec('uptime');
    $pezzi explode(" "$UpTime);

    $Giorni$pezzi[4];
    $Oresubstr($pezzi[7],0,1);

    if (
    $Giorni<>AND $Ore<>0) {
        
    $UpTime = ($Giorni==0?'':($Giorni." ".($Giorni==1?'Giorno':'Giorni'))).($Ore==0?'':" ".$Ore." ".(($Ore==1?'Ora':'Ore')));
    }
    else{
    $UpTime "Gò 'pena riavvià!";}

    /////////////////////////////////////////////////
    /////////////////////////////////////////////////
    ?>
    Come potrete notare esistono 2 variabili, che prendo da "files/altridati.txt", chiamati BandaIN e BandaOUT.
    Da me questo file contiene la banda media uscita/entrata degli ultimi minuti, è un dato che ricavo dal programma per linux che ha fatto un mio amico e che se diventerà open source vi manderò di sicuro.

    Invece per mettere il mio IP nel file ping.txt effettuo un ping su me stesso ogni ora in questo modo....
    ... metto in un file ATTIVO nella mia directory di linux /etc/cron.hourly/ un file di testo che contiene:
    codice:
    wget -q --spider http://freedns.afraid.org/dynamic/update.php?<miocodicediAfraid.org>
    
    ping -c 1 -q <mioURL> > /<SITO>/files/ping.txt
    Come potete notare uso Afraid.org...
    Il wget spider mi permette di aggiornare il mio ip nel mio DNS ogni ora tramite afraid.org.
    Il ping mi fa scrivere nel file ping.txt il ping COMPLETO.
    Nel codice php tolgo ciò che non mi serve e mi prendo soltanto il mio indirizzo Ip.
    Questo sono stato obbligato a farlo perchè sono dietro ROUTER e usando la semplicissima funzione di PHP ottenevo il mio IP in rete LOCALE.

    Grazie e arrivederci :)
    Spero di esservi stato d'aiuto almeno un centesimo di quanto html.it lo è stato con me.
    -_-"

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.