Как проверить операционную систему зрителя сайта?

Я использую Ubuntu 8.04, и недавно я получил следующую ошибку при посещении веб-сайта:

Вернитесь на сайт www.site.com с компьютером под управлением Windows 98, 2000, Me, NT или XP.

  1. Как веб-сайт узнает, какую ОС я использую? Это только через javascript или в заголовках запросов есть информация об ОС?

  2. Могу ли я обойти эту проверку или "притвориться", что использую Windows, чтобы я мог получить доступ к веб-сайту, даже если у меня запущена неподдерживаемая ОС?

7 ответов

Решение

Дополнение Firefox User Agent Switcher позволяет "подделывать" другой веб-браузер.

Могу ли я имитировать другой браузер / платформу?

Есть много способов подменить строки агента пользователя. В Firefox есть расширение, называемое "User Agent Switcher", которое позволяет имитировать другие браузеры.

https://addons.mozilla.org/en-US/firefox/addon/59

Агенты пользователей

Проверка пользовательского агента часто может сказать вам это. Например, мой пользовательский агент:

Mozilla / 5.0 (Windows; U; Windows NT 6.0; ru-ru) AppleWebKit/532.0 (KHTML, как Gecko) Chrome/3.0.195.38 Safari/532.0

На какой платформе я работаю?

Опция Javascript

Вы также можете использовать navigator объект в Javascript, чтобы получить некоторую информацию тоже. Например:

alert(navigator.platform);  // alerts Win32
alert(navigator.userAgent); // Mozilla/5.0 (Windows; U; Windows NT 6.0...

Настройки PHP

Вы можете получить user-agent в PHP из массива $_SERVER:

print $_SERVER["HTTP_USER_AGENT"]; // Mozilla/5.0 (Windows; U; Windows NT...

У PHP также есть и другие полезности, такие как get_browser() * функция в PHP, которая возвращает массив информации, включая platform:

Array
(
    ...
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    ...
)

* get_browser() опирается на browscap.ini - Смотрите
http://www.php.net...php#ini.browscap для получения дополнительной информации.

Как веб-сайт узнает, какую ОС я использую? Это только через javascript или в заголовках запросов есть информация об ОС?

Эта информация идет в User-Agent Заголовок HTTP каждый раз, когда вы делаете запрос на любой сервер.

Могу ли я обойти эту проверку или "притвориться", что использую Windows, чтобы я мог получить доступ к веб-сайту, даже если у меня запущена неподдерживаемая ОС?

Проверьте эту ссылку для получения дополнительной информации в User-Agent подделка с использованием firefox.

Вы можете использовать navigator.platform в JavaScript:

var OS = navigator.platform;
alert(OS);

Таким образом, вам не нужно беспокоиться о парсинге пользовательского агента.

Вот полный код. Он может помочь кому-то, он определяет, какую версию ОС использует пользователь и версию, но в таких версиях, как Window 7 home/professional/ultimate и т. Д., Он не настолько глубок, что он намного сложнее.

//OS DETECTION... 
function find_os(){ 
var OSVer=""; 
if (navigator.userAgent.indexOf("Mac OS X 10.4")!=-1) OSVer="MacOS Tiger"; 
if (navigator.userAgent.indexOf("Mac OS X 10.5")!=-1) OSVer="MacOS Leopard"; 
if (navigator.userAgent.indexOf("Mac OS X 10.6")!=-1) OSVer="MacOS Snow Leopard"; 
if (navigator.userAgent.indexOf("NT 5.1")!=-1) OSVer="Windows XP"; 
if (navigator.userAgent.indexOf("NT 6.0")!=-1) OSVer="Windows Vista"; 
if (navigator.userAgent.indexOf("NT 6.1")!=-1) OSVer="Windows 7"; 
if (navigator.userAgent.indexOf("Linux")!=-1) OSVer="Linux"; 
if (navigator.userAgent.indexOf("X11")!=-1) OSVer="UNIX"; 

returh OSVer; 
}

Это может быть угадывание из строки User-Agent.

Сценарий на стороне сервера представит веб-браузеру информацию, которая указывает тип и версию браузера пользователя, а также операционную систему. Например, в PHP у вас есть get_browser()

Браузер Opera имеет функцию Spoof и может выступать в качестве другого типа браузера, чтобы избежать блокировки браузера.

Другие вопросы по тегам