Как вывести хиты страницы в текстовый документ - PullRequest
0 голосов
/ 06 июня 2011

У меня есть домашняя страница HTML.Я хочу иметь возможность выводить текстовые документы на сервер каждый раз, когда человек просматривает страницу.

Я хочу указать IP-адреса, страницу и дату / время, если кто-нибудь знает простой способ сделать это?

Если это нужно сделать, кроме HTML, я бы предпочел использовать ASP.

Ответы [ 4 ]

1 голос
/ 06 июня 2011

Как сказал @Alp, PHP будет подходить:

  $_SERVER['REMOTE_ADDR']; //gives you the visitor's IP address

  basename($_SERVER["SCRIPT_NAME"]); //gives you the page name

  date();  // gives you the current date

Тогда было бы просто запустить небольшой скрипт, который записывает их в файл на каждой странице.

Может быть стоит взглянуть на Google Analytics - он дает много полезной статистики о посетителях (не на 100% вы можете получить индивидуальные IP-адреса, кто-нибудь может уточнить это?)

Edit:

ASP.NET

Request.ServerVariables["REMOTE_ADDR"]; // ip
Request.ServerVariables["HTTP_REFERER"]; // page
1 голос
/ 06 июня 2011

Сначала переименуйте страницу, чтобы она имела расширение .aspx, а также добавьте код позади файла.

Во-вторых, добавьте этот метод к коду:

private void WriteLog()
{
    string currentFileName = Path.GetFileNameWithoutExtension(Request.FilePath);
    string logFileName = string.Format("{0}_{1}.log.txt", currentFileName, DateTime.Now.ToString("ddMMyyyy"));
    string logFilePath = Server.MapPath(logFileName);
    string IP = Request.ServerVariables["REMOTE_ADDR"];
    string logMessage = string.Format("[{0}] [IP: {1}] [Page: {2}]", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), IP, Request.FilePath);
    File.AppendAllLines(logFilePath, new string[] { logMessage });
}

И, наконец, просто вызовите вышеуказанный метод из события Page_Load, например,

protected void Page_Load(object sender, EventArgs e)
{
    WriteLog();
}

Это создаст текстовый файл с тем же именем, что и .aspx (в том же месте) плюс текущая дата, чтобы избежать засорения того же файла миллионами строк, и добавит одну строку для каждого попадания.

Редактировать: это код .NET 4.0, поэтому вам придется определить его как целевую платформу как в Visual Studio, если вы ее используете, так и в конфигурации IIS. web.config должен быть обновлен Studio, и если вы его не используете, вот дополнительные строки:

<system.web>
  <httpRuntime requestValidationMode="2.0" />
  <compilation debug="true" targetFramework="4.0" />
</system.web>
0 голосов
/ 06 июня 2011

Вы можете использовать существующую структуру журнала, такую ​​как Log4Net.

0 голосов
/ 06 июня 2011

Вы можете использовать PHP для этого, если ваш сервер поддерживает его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...