Dec
25
2009

How many users are connected on http apache server

<?
if(isset($_GET['showsource'])) { highlight_file($_SERVER['SCRIPT_FILENAME']); die; }

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;

}

echo howManyIps().” connected.”;
?>

Vir: http://www.barattalo.it/category/php/page/3/

About the Author: Urban Cetinski

Urban Cetinski :)

Leave a comment

Get Adobe Flash playerPlugin by wpburn.com wordpress themes