[PHP] Jak logować unikatowe numery IP użytkowników z całego dnia?
Chcesz zapisać do pliku numery IP (bez powtórzeń) użytkowników, którzy w ciągu całego dnia odwiedzili Twój serwis.
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.