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