LightSquid и статистика пользователей

Эта запись опубликована в рубрике [ Линукс ]

Есть такой популярной анализатор логов прокси-сервера Squid как LightSquid. И многие администраторы его используют. Скорее всего, что я не первый столкнулся с проблемой того, как показывать пользователям локальной сети их статистику походов по сайтам. Предлагаю свое решение данной небольшой проблемы. Пишем простые .htaccess + index.html файлы и ложим их в каталог со скриптами (у меня исполнение cgi-скриптов и показ html-файлов в одном и том же каталоге разрешено). Итак index.html:


<html>
 <head>
  <script>
<!--//

   function postform(){
    var form;
    date = new Date();
    form = '<select name=day>';
    for(i=1; i<=31; i++){
     if(i<10){day="0"+i;}else{day=i;}
     form = form+'<option value='+day;
     if(date.getDate() == i){form = form+' selected';}
     form = form+'>'+day;
    }
    form=form+'</select>';

    form = form+'<select name=month>';
    for(i=1; i<=12; i++){
     if(i<10){month="0"+i;}else{month=i;}
     form = form+'<option value='+month;
     if((date.getMonth()+1) == i){form = form+' selected';}
     form = form+'>'+month;
    }
    form=form+'</select>';

    form = form+'<select name=year>';
    for(i=2005; i<=2007; i++){
     form = form+'<option value='+i;
     if((date.getYear()+1900) == i){form = form+' selected';}
     form = form+'>'+i;
    }
    form=form+'</select>';

    document.write(form);
   }

   function post(){
    var f = document.forms[0];
    document.location = "http://stat.server.com.ua/squid/"+f.year.value+"/"+f.month.value+"/"+f.day.value;
   }
//-->
  </script>
 </head>

 <body>
  <div align="center">
   <h2>Просмотр статистики посещенных сайтов за дату:</h2>
   <form>
    <script>
<!--//
     postform();

//-->
    </script>

    <input type="button" onclick="post();" value="Показать статистику">
   </form>
  </div>
 </body>
</html>

Ну и .htaccess:

<Files "index.cgi">
AuthType Basic
AuthName "Server statistic"
AuthUserFile /tmp/.htpasswd
require valid-user
</Files>

<Files "day_detail.cgi">
AuthType Basic
AuthName "Server statistic"
AuthUserFile /tmp/.htpasswd
require valid-user
</Files>

<Files "month_detail.cgi">
AuthType Basic
AuthName "Server statistic"
AuthUserFile /tmp/.htpasswd
require valid-user
</Files>

RewriteEngine on
RewriteRule  ^([0-9]+)/([0-9]+)/user_time.cgi(.*) /squid/user_time.cgi$3 [L]
RewriteRule  ^([0-9]+)/([0-9]+)/([0-9]+)$ /squid/user_detail.cgi?year=$1&month=$2&day=$3&user=%{REMOTE_HOST} [QSA,L]

Ну вот и все. IP пользователя определяется веб-сервером и пользователь не сможет добраться до чужой статистики, не зная где и какие файлы запускать. Администратор может вызвать напрямую index.cgi и ввести логин и пароль для доступа. И не забудьте подправить имя домена в index.html и каталог скриптов в .htaccess.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Post to Twitter Post to Delicious Post to Facebook Post to MySpace Post to Ping.fm

Оценить эту запись:
1 звезда2 звезды3 звезды4 звезды5 звезд (2 голос(ов), среднее: 4.50 из 5)
Вы можете следить за ответами к этой записи через RSS 2.0 feed. Вы можете оставить мнение, или трэкбэк с собственного сайта.

1 комментарий

  • 20.11.2009 06:05, Евгений сказал:

    Здравствуйте. Сделал вашу статистику на своем шлюзе. Никак у меня не хочет определяться адрес зашедшего пользователя. Определяется IP самого шлюза.

    (Обязательно)
    (Обязательно, не публикуется)