[PHP] Jak logować unikatowe numery IP użytkowników z całego dnia?

0x01 graphic

Chcesz zapisać do pliku numery IP (bez powtórzeń) użytkowników, którzy w ciągu całego dnia odwiedzili Twój serwis.

0x01 graphic

Można przyjąć, że średnio jeden numer IP odpowiada jednemu użytkownikowi, który wszedł na Twoją stronę. Zapisując numery IP, możesz w łatwy sposób policzyć ile mniej więcej unikatowych użytkowników odwiedziło Twój serwis w ciągu każdego dnia.

Oczywiście nie jest to dokładna liczba użytkowników, bo czasem z jednego IP może wejść ich kilku. Podobnie, jak jeden użytkownik w ciągu dnia może wejść z kilku różnych numerów IP. Jednak najczęściej liczy się właśnie numery IP i są one podstawą do określenie ilości osób odwiedzających serwis WWW w ciągu dnia. Policzmy więc IP dla każdej doby...

<?

$ip = $_SERVER["REMOTE_ADDR"];

$plik = "/sciezka/ip/".date("Ymd").".txt";

if (file_exists($plik)) {

$plikip = file($plik);

foreach($plikip as $pip) {

if (trim($pip)==$ip) {

$jest=true; break;

}

}

}

if (!$jest) {

$f=fopen($plik,"a"); fputs($f,"$ip\n"); fclose($f);

}

?>

Numery IP będziemy zapisywać w plikach tekstowych. Dla każdego dnia będzie osobny plik, utworzony według daty, np. 20040220.txt dla dnia 2004.02.20. Musisz jeszcze tylko określić ścieżkę do katalogu z plikami IP i nadać mu atrybut zapisywania dla każdego (chmod 777)

Teraz pobieramy plik z numerami (jeżeli istnieje) i szukamy czy IP użytkownika już w nim jest. Jeżeli jest, nic nie robimy, a jeżeli nie ma, wtedy dodajemy jego IP na koniec pliku.

I to w zasadzie wszystko. Każdy dzień w katalogu będzie miał swój plik z numerami IP. Możesz potem stworzyć różnego rodzaju zestawienia (miesięczne, kwartalne) na podstawie zbierających się danych.