PHP-скрипт (ip.php, например)
<?php
# Записываем IP в переменную $ip
$ip = $_SERVER["REMOTE_ADDR"];
# Записываем дату в переменную $day
$day = date("Y-m-d");
# Записываем время в переменную $tim
$tim = date("H:i:s");
# Запись в лог-файл, лежащий в папке log (для истории))
$log = fopen("/home/u/user.hosting.ru/WWW/ip/log/".$day.".log", "a");
fputs($log,$tim." - ".$ip."\n");
fclose($log);
# Запись в файл, предназначенный для просмотра браузером
$one = fopen("ip.htm", "w");
fputs($one,$ip." - ".$day."/".$tim);
fclose($one);
# Выводим сообщение для забредших случайно
echo "All good!";
?>
Редактируем crontab от имени user
$ crontab -u user -e
добавляем задание
*/30 * * * * wget -q --spider http://user.hosting.ru/ip/ip.php
В данном случае wget запускается каждые 30 минут. С ключем --spider ничего не качает, просто обращается к скрипту. -q не даёт засорять системную почту ненужными сообщениями от wget.
На выходе имеем:
http://user.hosting.ru/ip/ip.htm
87.250.251.3 - 2012-12-24/16:58:16
http://user.hosting.ru/ip/log/2012-12-21.log (на каждый день - свой)
14:58:17 - 93.158.134.11
15:28:16 - 93.158.134.11
15:58:17 - 87.250.251.3
16:28:17 - 87.250.251.3
16:58:16 - 87.250.251.3
Помогли материалы: fopen, cron, man wget. Подсветка синтаксиса - GeSHi