Вообще, как я уже комментировал выше, везде присутствует запрос
'HTTP_X_REAL_IP'
или
'HTTP_CLIENT_IP'
Вот
здесь довольно неплохо изложено.
С одним "но" -
MongoDB.
Я думаю, если покопаться в справочниках(а они есть и на русском), то можно сие переписать под ДБ предоставляемым хостером.
Да в конце концов, можно и в, скажем, CSV это все гнать.
Но проще всего на стороне сервера запустить что-то такое:
<?php
$file="stat.log"; // файл для записи истории посещения сайта
$col_zap=500; // ограничиваем количество строк log-файла
function getRealIpAddr() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) // Определяем IP
{ $ip=$_SERVER['HTTP_CLIENT_IP']; }
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{ $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
else { $ip=$_SERVER['REMOTE_ADDR']; }
return $ip;
}
if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';} //Выявляем поисковых ботов
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
else { $bot=$_SERVER['HTTP_USER_AGENT']; }
$ip = getRealIpAddr();
$date = date("H:i:s d.m.Y"); // определяем дату и время события
$home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // определяем страницу сайта
$lines = file($file);
while(count($lines) > $col_zap) array_shift($lines);
$lines[] = $date."|".$bot."|".$ip."|".$home."|\r\n";
file_put_contents($file, $lines);
?>
На выходе получаем подобное этому:
Останется только распарсить log-файл(модулей для python полно)