Çevrimiçi Kullanıcıları IP Adresine Göre Almak

<?php
	class kimlerCevrimici{
		public $yol;
		var $dakika = 5; 
		var $dosya = 'gecmis.txt';
		var $gecmis = array();
		var $sayac = 0;	
		function __construct(){
			if(!file_exists($this->dosya)){
				file_put_contents($this->dosya,"");
			}
		}
		function kullaniciAl($ip){
			$dosya = fopen($this->yol . $this->dosya, 'r');		
			$gecmis = '';			
			while (!feof($dosya)) {
				$gecmis .= fread($dosya, 8192);
			}			
			fclose($dosya);
			$this->gecmis = explode('|', $gecmis);
			$p = strpos($gecmis, $ip);
			if ($p === false){
				$this->gecmis[sizeof($this->gecmis)] = $ip.','.time();
			}
		}
		function guncelle(){
			if ($dosya = fopen($this->yol . $this->dosya, 'w+')){
				$gecmisMetin = '';
				foreach($this->gecmis as $i => $v){
					if (strlen(trim($v)) > 0){
						$kullanici = explode(',', $v);
						$gecmisMetin .= $kullanici[0].','.$kullanici[1].'|';
					}
				}
				$gecmisMetin = substr($gecmisMetin, 0, strlen($gecmisMetin) - 1);
				if (fwrite($dosya, $gecmisMetin)){
					return true;
				}else{
					return false;
				}
			}else{
				return false;
			}
		}
		function kac($ip){
			$this->kullaniciAl($ip);
			$this->sayac = 0;
			foreach($this->gecmis as $i => $v){
				$kullanici = explode(',', $v);
				
				if ($kullanici[1] > (time() - $this->dakika * 60) || $kullanici[0] == $ip){
					$this->sayac++;
				}else{
					$gecmis[$i] = '';
				}
			}
			$this->guncelle();
			return $this->sayac;
		}
	}
	$u = new kimlerCevrimici;
	echo $u->kac($_SERVER['REMOTE_ADDR']);
?>

Çıktısı

2

gecmis.txt

212.74.253.133,1527946050|173.247.117.141,1527946093

 

Sizin Değerli Görüşlerinize İhtiyacımız Var.