[PHP] Jak zapisywać do pliku numery IP osób odwiedzających stronę?
Chcesz wykrywać numery IP użytkowników i zapisywać je w pliku tekstowym.
Monitorowanie numerów IP użytkowników odwiedzających stronę jest o tyle przydatne, że pozwala zorientować się ilu unikalnych użytkowników odwiedza Twoją stronę.
Zapisywanie numerów IP do pliku pozwala tworzyć różnego rodzaju raporty i zestawienia dotyczące ruchu na stronie - można nie tylko zapisać numer IP, ale również czas, który pomoże ustalić kiedy użytkownik wszedł do serwisu - można więc ustalić jak często osoba odwiedza konkretne strony.
Standardowo adresy IP użytkownika zapisywane są w logach serwera WWW (np. Apache). Dzięki PHP możesz stworzyć niezależne statystyki IP i znacznie je rozbudować, jak w poniższym przykładzie:
<?
$ip = $_SERVER["REMOTE_ADDR"];
$f=fopen("numeryip.txt","a");
fputs($f,"$ip\n");
fclose($f);
?>
Do zmiennej $ip przypisuję numer IP użytkownika pobrany ze zmiennej systemowej $_SERVER["REMOTE_ADDR"]. Następnie otwieram plik numeryip.txt z atrybutem "a" (dodawanie do pliku nowej treści) i dopisuję pobrany numer IP. Znak \n powoduje przejście do nowej linii po zapisaniu numeru.
Można dodawać po każdym numerze datę i godzinę, co pozwoli śledzić dokładnie kiedy użytkownik wchodził do serwisu:
<?
$data = sprintf("%04d.%02d.%02d-%02d:%02d",
date("Y"), date("m"), date("d"), date("H"), date("i"));
$ip = $_SERVER["REMOTE_ADDR"];
$f=fopen("numeryip.txt","a");
fputs($f,"$ip - $data\n");
fclose($f);
?>
Dodatkowa funkcja sprintf() z parametrami określającymi aktualną datę pozwala formatować datę i czas do postaci np. 2003.08.03-19:12. Tak może wyglądać zawartość pliku numeryip.txt:
157.22.2.56 - 2003.08.03-19:12
187.45.8.46 - 2003.08.03-19:13
175.52.42.11 - 2003.08.03-19:15
76.22.56.7 - 2003.08.03-19:16
113.4.32.116 - 2003.08.03-19:23
Możesz zapisywać w pliku również inne informacje.Uważaj tylko aby ilość zapisywanych danych nie była zbyt wielka, ponieważ szybko plik z numerami IP będzie się rozrastał. Numer IP składa się standardowo z 15 znaków (xxx.xxx.xxx.xxx). Gdy 500 użytkowników odsłoni stronę zapisującą wyłącznie numer IP tylko 5 razy, to plik już będzie miał objętość 37 tys. znaków. Im dłuższy plik tym trudniej go potem przetwarzać.