Просмотр полной версии : скрипт логирования юзер агентов
подскажите php скрипт для логирования юзерагентов и реферов
и что бы все эти данные выводились в нормальном юзабельном виде
brasco2k
28.04.2008, 20:40
попробуй ето:
<?php
$f=fopen("users.log","at"));
flock($f,2);
fputs($f,"Юзер-агент: ".$_SERVER['HTTP_USER_AGENT']."\n");
fputs($f,"IP: ".$_SERVER['REMOTE_ADDR']."\n");
fputs($f,"Реферер: ".$_SERVER['HTTP_REFERER']."\n");
flock($f,3);
fclose($f);
?>
ставишь chmod(права) на созданный предварительно users.log - 777
этот код^^^
вставляешь в странички, потом статистику смотришь в users.log
думаю ты это хотел, можно кстати сделать и sql если ты хочешь чтобы все красиво было..... но это быстро базу положит)), если юзеры будут перезагружать по 5 раз странички каждый в несколько секунд
у меня на сайте постоянно по 20, 30 юзеров, которые непереставая шастают по сайту
так что лог файл все же лучше чем база
не работает, лог остается пустым
скрипт записи
<?
// функция по определению ip
function ip(){
if( getenv('REMOTE_ADDR'))
{$user_ip = getenv('REMOTE_ADDR');}
elseif( getenv('HTTP_FORWARDED_FOR'))
{$user_ip = getenv('HTTP_FORWARDED_FOR');}
elseif( getenv('HTTP_X_FORWARDED_FOR'))
{$user_ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif( getenv('HTTP_X_COMING_FROM'))
{$user_ip = getenv('HTTP_X_COMING_FROM');}
elseif( getenv('HTTP_VIA'))
{$user_ip = getenv('HTTP_VIA');}
elseif( getenv('HTTP_XROXY_CONNECTION'))
{$user_ip = getenv('HTTP_XROXY_CONNECTION');}
elseif( getenv('HTTP_CLIENT_IP'))
{$user_ip = getenv('HTTP_CLIENT_IP');}
else{$user_ip='unknown';}
if(15 < strlen($user_ip)){
$ar = split(', ', $user_ip);
for($i=sizeof($ar)-1; $i > 0; $i--){
if($ar[$i]!='' and !preg_match('/[a-zA-Zа-яА-Я]/', $ar[$i]))
{$user_ip = $ar[$i];
break;
}
if($i==sizeof($ar)-1){$user_ip = 'unknown';}
}
}
if(preg_match('/[a-zA-Zа-яА-Я]/', $user_ip)){$user_ip = 'unknown';}
return $user_ip;
}
$ip_user = ip();
$time=date("d-M-Y");
$op=fopen("log-$time.txt", "a");
fputs($op, "ip: ".$ip_user." Броузер: ".$_SERVER['HTTP_USER_AGENT']." Реф: ".$_SERVER['HTTP_REFERER']."\n");
fclose($op);
?>
скрипт вывода
<?
$d = dir("./");
$i=0;
while($entry=$d->read()) {
if (substr($entry,0,4)=="log-") {
$names[$i]=substr($entry,4,-4);
$i++;
}
}
$d->close();
for ($i=0; $i<count($names); $i++) print"<a href=\"log-$names[$i].txt\">$names[$i]</a><br />";
?>
системные переменные и все. мог постараться и сам написать. ;)
спасибо теперь все логируется нормально
отностительно содержимого лога, все вроде понятно кроме строк
.net Clr 1.1.4322; .net Clr 2.0.50727
biophreak
29.04.2008, 12:29
Это, видимо версия .net фреймворков :) ВРоде осел страдает подстановкой этой шняги...короче не переживай...это - часть юзерагента... ;)
там в юзер агентах вобще много интересного
у полвины юзеров в браузерах стоит всякая хрень типа iebar; acc=kimochiz; acc=none; FunWebProducts и прочего
какую переменную использовать для определения домена пользователя ?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot