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) ? 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==0 || ($lock_ip==1 && 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;
$ipmio= substr($ping,$aperta,$chiusa-$aperta-1);
$UpTime = @exec('uptime');
$pezzi = explode(" ", $UpTime);
$Giorni= $pezzi[4];
$Ore= substr($pezzi[7],0,1);
if ($Giorni<>0 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:
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.