Статьи

Управление пользовательским агентом для точной статистики сайта

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

Обычно, вы можете установить «индивидуальный» файл cookie. Затем, когда вызывался скрипт отслеживания, вы могли просто проверить, существует ли этот файл cookie, и, если он был, выйти из скрипта отслеживания.

Однако, если, как и я, вы откровенно боитесь печенья на том основании, что они:

  1. трудно проверить,
  2. называются чем-то глупым и
  3. не на 100% надежны

… и вам не повезло иметь статический IP-адрес в вашем интернет-соединении, вы можете предпочесть альтернативный метод, который мы собираемся обсудить.

Кроме того, многие веб-мастера исключают из отслеживания некоторые браузеры, которые, как известно, не работают на своих веб-сайтах. Например, многие сайты блокируют любые браузеры, отличные от Internet Explorer или Netscape, такие как отличный новый Firebird от Mozilla и куча других. Возможность манипулировать пользовательским агентом, чтобы обмануть Веб-сайт, заставляя его думать, что мы используем Internet Explorer 6.0, когда мы действительно запускаем Firebird 0.7, может быть очень удобно!

Пользовательский агент

Каждый браузер идентифицирует себя через то, что называется «пользовательский агент». Проще говоря, это не более чем строка символов, содержащая различные биты информации. Типичный пользовательский агент может выглядеть так:

Mozilla 4.0(compatible, MSIE6.0; Win NT 5.1)

Это говорит нам о том, что браузер основан на Mozilla 4.0 (большинство браузеров основаны на Mozilla), это Internet Explorer 6, а также, что компьютер является Windows NT 5.1 (он же Windows XP). Подобный пользовательский агент для браузера Mozilla Firebird может выглядеть так:

 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 Firebird/0.7

Эта информация всегда доступна серверу из браузера. Мы можем получить доступ к этим деталям с помощью простого кусочка PHP:

 $agent=$_SERVER["HTTP_USER_AGENT"];

Или в ASP:

 sUserAgent= Request.ServerVariables("HTTP_USER_AGENT")

Я предпочитаю использовать серверный язык для этой задачи, например, Javascript, поскольку Javascript может быть отключен пользователем, что может привести к сбою всего сценария. Для получения дополнительной информации о реализации на конкретных языках прочитайте соответствующее руководство или спросите на форумах SitePoint.

Изменение агента пользователя на вашем компьютере

Процесс, с помощью которого мы можем манипулировать пользовательским агентом, зависит от браузера и операционной системы. Я опишу процесс для более распространенных браузеров в системе Windows XP. Методы будут практически идентичны для других систем на базе Windows и достаточно просты на компьютерах с Linux или Mac.

Прежде всего, нам нужно решить, на что мы собираемся изменить User Agent. Все, что нам нужно сделать, это добавить к существующему пользовательскому агенту некую уникальную строку, с которой мы можем идентифицировать себя. Выберите что-то действительно уникальное, не особо чувствительное (например, не слово, которое вы используете в качестве пароля). Я собираюсь использовать «weirdbeardmt» — мой идентификатор пользователя на форумах SitePoint.

Мозилла и Мозилла Жар-птица

К счастью, какой-то добрый человек уже написал расширение для встраивания этой функциональности непосредственно в Mozilla и Mozilla Firebird. Его можно скачать здесь .

Расширение устанавливает пункт меню, который позволяет добавить пользовательский пользовательский агент и выполнять переключение на лету. Это также идеально подходит для тестирования (и в высшей степени легко, если вам нужно сменить агента пользователя, чтобы получить доступ к заблокированному веб-сайту). Для тестирования вам понадобится пользовательский пользовательский агент. Ваш обновленный пользовательский агент будет выглядеть примерно так:

 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 Firebird/0.7 StumbleUpon/1.901 weirdbeardmt

В случае, если это расширение таинственно недоступно, все, что нужно сделать, это изменить файл prefs.js, найденный в рабочем каталоге Mozilla. Быстрый поиск «агента» должен найти его для вас.

Internet Explorer

К сожалению, изменение пользовательского агента в IE должно быть взломом реестра! Если вы не привыкли играть с реестром, то рекомендуется не продолжать этот пример или, по крайней мере, сделать резервную копию перед началом работы. Перейдите к:

HKEY_CURRENT_USERSПрограммное обеспечениеMicrosoftWindowsCurrentVersionInternet Settings

Найдите строку агента пользователя и дважды щелкните по имени, чтобы настроить его. Если вы используете пользовательский «скин» Internet Explorer, такой как Netcaptor, то его также можно добавить в свой пользовательский агент, перейдя по ссылке:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet Settingsuser agentPost Platform

Затем вы можете добавить новую строку там. Ваш новый пользовательский агент будет выглядеть примерно так:

 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Netcaptor 7.2.1; weirdbeardmt)

Опера 6/7

Функция переключения пользовательских агентов встроена в Opera («Файл»> «Настройки»> «Сеть»), но Opera не позволяет указывать пользовательские агенты. К сожалению, нет никакого способа обойти это (как меня уверяет технический директор Opera!).

Используя Ol ‘Switcheroo

Теперь, когда у нас есть наш новый пользовательский агент, как мы будем его использовать? Что ж, все, что нам действительно нужно сделать, — это найти наличие идентификатора (weirdbeardmt) в пользовательском агенте. Итак, к моему скрипту трекера, который включен на каждую страницу каждого из моих сайтов, я просто добавляю следующее:

 <?php 
if(strpos($_SERVER["HTTP_USER_AGENT"],"weirdbeardmt")!=FALSE) {

// continue with the tracking script

}
?>

В ASP это будет выглядеть следующим образом:

 <% 
If Not InStr(Request.ServerVariables("HTTP_USER_AGENT"),"weirdbeardmt") > 0 Then
 'continue with your tracking script
End If
%>

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