Регистрировать IP-адрес пользователя, дату и время

Есть ли простой сценарий или фрагмент кода, который я могу добавить на свою страницу, чтобы вести журнал каждого посетителя, дату и время, когда они зашли на страницу, и IP-адрес? И как лучше всего это сделать... javascript, php, что-то еще?

РЕДАКТИРОВАТЬ:

Ой...

Вот что произошло ... Когда я зашел на свой сервер с FileZilla, там были все доменные имена (около 20), которые у меня были зарегистрированы, как мой домен.com, поэтому я нашел то, что мне было нужно, и проверил журналы, но это был в основном поиск двигатели.

Но я просто вернулся и случайно прокрутил вниз до материала, который был вне поля зрения, и все доменные имена снова были с www впереди, например, www.mydomain.com, и, конечно, журналы там огромны и содержат каждый бит. информация мне нужна.

Это произошло потому, что я нашел то, что искал, mydomain.com и, конечно же, перестал искать. Я не знал и не видел, что вне поля зрения был еще один набор... честная ошибка.

Я до сих пор использую этот код, потому что он красивый и маленький, журналы чертовски огромны, и их загрузка и просмотр занимают часы.


person gravityboy    schedule 26.07.2011    source источник
comment
Разве вы не можете просто посмотреть журналы доступа вашего веб-сервера?   -  person D.N.    schedule 27.07.2011
comment
Чтобы ответить на ваши вопросы: (1) да (2) на стороне сервера, поэтому php или любой другой язык на стороне сервера и, наконец, большой выбор   -  person Wrikken    schedule 27.07.2011
comment
Хотя вариант Д.Н. действительно лучше. Множество пакетов для автоматического анализа журналов доступа.   -  person Wrikken    schedule 27.07.2011
comment
Я сделал это, и это не показывало мне все. это были просто поисковые системы   -  person gravityboy    schedule 27.07.2011
comment
Если вы используете установку Apache по умолчанию в Debian или Ubuntu, попробуйте проверить /var/log/apache2/access.log, чтобы увидеть, существует ли этот файл.   -  person mopsled    schedule 27.07.2011


Ответы (5)


$line = date('Y-m-d H:i:s') . " - $_SERVER[REMOTE_ADDR]";
file_put_contents('visitors.log', $line . PHP_EOL, FILE_APPEND);

Подумайте также о регистрации $_SERVER['REQUEST_URI'] или другой интересной информации, возможно, в более стандартном формате, как указано @Day.

person deceze♦    schedule 26.07.2011
comment
@gravityboy: это работает, но, как предположили несколько человек в комментариях, эти 2 строки кода на 2 строки больше, чем вам действительно нужно;) Попробуйте используя вместо этого встроенный журнал вашего веб-сервера. - person Day; 27.07.2011
comment
@Day Полностью согласен. Однако в зависимости от вашего хоста у вас может не быть доступа к этим журналам, так что это самый простой способ создать свой собственный. - person deceze♦; 27.07.2011
comment
@deceze Боже, конечно. Общий хостинг. Это было так давно, что я на самом деле забыл об этом. Хороший вопрос, спасибо. - person Day; 27.07.2011
comment
@deceze Как добавить $_SERVER['REQUEST_URI'] в ваш код? - person gravityboy; 28.07.2011
comment
@gravity Поместите его в строку после REMOTE_ADDR. … $_SERVER[REMOTE_ADDR] - $_SERVER[REQUEST_URI]". - person deceze♦; 28.07.2011
comment
Можем ли мы получить страницу, с которой они пришли? Это реферер? Что еще можно сделать? - person gravityboy; 28.07.2011
comment
@gravity Да, это реферер [так в оригинале]. Регистрируйте все, что хотите, из $_SERVER массива или любого другого типа. данных, к которым PHP имеет доступ. - person deceze♦; 28.07.2011
comment
Это может быть глупый вопрос, но куда записывается посетители.log? Я проверил везде... в var/www/ в var/log/.... и не в корне... - person Supplement; 19.06.2018

Самый простой фрагмент кода, который можно добавить на страницу, вообще не содержит кода. Так могу ли я предложить "что-то еще"? Попробуйте использовать встроенную функцию регистрации запросов вашего веб-сервера вместо того, чтобы писать собственный PHP-код.

Apache и многие другие веб-серверы могут создавать журналы в Common Log Format (CLF), и существует множество инструментов. доступны для анализа таких журналов и построения красивых графиков (Webalizer, Awstats и т. д.). Строка журнала CLF выглядит так, что дает вам всю запрашиваемую информацию и многое другое:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 

См. соответствующую часть документации для вашего веб-сервера, чтобы узнать, как настроить ведение журнала и попробовать:

person Day    schedule 27.07.2011
comment
Мой веб-сервер создает журналы, но это были не все пользователи... в основном это были только поисковые системы. Я узнаю почему и отчитаюсь. Благодарность - person gravityboy; 27.07.2011
comment
@gravityboy Звучит очень странно. Какой веб-сервер вы используете? Апач? - person Day; 27.07.2011
comment
@gravityboy Достаточно честно, без проблем. Теперь вы запомните и в следующий раз будете знать, что делать :) - person Day; 27.07.2011

вот мой небольшой скрипт для регистрации IP-адресов, не забудьте добавить нижеследующее после тега /HEAD, также обратите внимание, чтобы это работало, это должен быть PHP, а не HTML

<?php include ('log-ip.php') ?>

где бы вы ни хотели, чтобы он звонил из

"log-ip.php"

<?php
$iplogfile = 'logs/ip-address-mainsite.html';
$ipaddress = $_SERVER['REMOTE_ADDR'];
$webpage = $_SERVER['SCRIPT_NAME'];
$timestamp = date('d/m/Y h:i:s');
$browser = $_SERVER['HTTP_USER_AGENT'];
$fp = fopen($iplogfile, 'a+');
chmod($iplogfile, 0777);
fwrite($fp, '['.$timestamp.']: '.$ipaddress.' '.$webpage.' '.$browser. "\n<br><br>");
fclose($fp);
?>

и результатом является хороший веб-файл журнала HTML logs/ip-address-mainsite.html.

<!DOCTYPE html><!-- HTML5 -->

<head>
<body bgcolor="#000000">
<title>NZ Quakes - Main Web Site Log</title>

</head>

<body>
<font color="#7FFF00">
<center>NZ Quakes - Main Web Site Log</center>
<font color="gold">
<br><center>
[01/04/2017 08:25:21]: 124.197.9.181 /index.php Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
<br><br>

ниже фото того, как это выглядит.

введите здесь описание изображения

что вы думаете об этом, я думаю, что это чисто и просто.

person evilbudz    schedule 02.04.2017

Самый полный — журнал доступа Apache: http://httpd.apache.org/docs/current/logs.html#accesslog

person Dor    schedule 26.07.2011
comment
Подразумевая, что автор сообщения использует Apache. - person Daniel; 27.07.2011
comment
@Daniel: Ну, он просил что-то еще. - person Dor; 27.07.2011
comment
@Daniel, ну, возможно, он не использует Apache, но он, предположительно, использует веб-сервер, и если выбранный им веб-сервер не выполняет минимальное ведение журнала запросов, которое он ищет, то это не тот веб-сервер, о котором я когда-либо слышал. Расширили это в мом ответе. - person Day; 27.07.2011

person    schedule
comment
Это автоматически создает файл журнала? - person gravityboy; 27.07.2011
comment
Нет. Я предполагал, что вы хотите записывать записи журнала в базу данных - для регистрации файлов проверьте ответ @Deceze выше. - person Daniel; 27.07.2011
comment
давно, но какая база данных? вы не указали какой-либо? - person Adam Larsson; 15.01.2021