Revision: 21093
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 3, 2009 05:13 by ginoplusio
Initial Code
function getIP() {
$ip="";
if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
else $ip = "";
return $ip;
}
function howManyIps() {
$filename = "./howmanyip.log";
$seconds = 300;
$yourIP = getIP();
if (file_exists($filename.".lock")) $readonly = true; else $readonly=false;
$count = 0;
//lock the file
if (!$readonly) $fpLock = fopen($filename".lock", "w");
//read data ips
$fp = fopen($filename, "r");
$arIPS=explode ("\n", fread($fp,filesize($filename)) );
fclose($fp);
//if file is locked get out
if ($readonly) return count($arIPS);
$s = "";
$already=false;
//update data and search user ip
for ($i=0;$i<count($arIPS);$i++) {
$arData= explode (" ", $arIPS[$i]);
//update your user timer
if ($yourIP==$arData[0]) {
$already=true;
$arData[1]=time();
}
// check if user is old
if ( time()- (integer)$arData[1] < $seconds ){
$s.=$arData[0]." ".$arData[1]."\n";
$count++;
}
}
if (!$already) {
//your user is new, add it to the list
$s.=$yourIP." ".time()."\n";
$count++;
}
//save the list
$fp = fopen($filename, "w");
fwrite($fp,$s);
fclose($fp);
//remove thr lock
fclose($fpLock);
unlink($filename.".lock");
return $count;
}
Initial URL
http://www.barattalo.it/2009/12/03/how-many-users-are-connected/
Initial Description
Count how many users are connected to a site (execute this function in every page, put it in the header).
Initial Title
How many users are connected to a site.
Initial Tags
ip
Initial Language
PHP