ОС: Windows 7/8
Браузер: Internet Explorer 11
Платформа: x86

Как я могу отредактировать строку агента пользователя на машине, чтобы она была универсально видна в коде на стороне сервера и в журналах веб-сервера? Это должно быть постоянное, развертываемое решение, так что использование инструментов разработчика, скорее всего, не будет работать в долгосрочной перспективе.

Единственный способ установить / изменить строку пользовательского агента для Internet Explorer, чтобы она была видна удаленному веб-серверу, - это использовать следующий ключ реестра \ значение:

Key:   HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Version
Value: SomeTestString
Data:  NULL

Выше приведено то, что, по-видимому, используется параметром групповой политики Windows Components\Internet Explorer\Customize User Agent String .

Если добавить ключ / значение , как показано выше, ваш агент пользователя будет выглядеть как - то вроде Mozilla/5.0 (SomeTestString; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko , как Gecko К сожалению, это дописывает пользовательскую строку вы добавляете к строке агента пользователя, которая ломает многие сайты Google и Netflix (и, вероятно, многие другие)

Использование другого найденного ключа / значения реестра покажет строку агента пользователя через запрос JavaScript, но она не отображается в журналах веб-сайта (не видна серверу):

Key:   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent
Value: SomeTestString
Data:  NULL

Если вы посмотрите в журналах веб-сервера, вы увидите только что-то вроде этого: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko , но если вы нажмете страницу, которая использует JavaScript, чтобы показать пользователю Агент, вы видите что-то вроде этого: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; SomeTestString; rv:11.0) like Gecko .

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

2 ответа2

1

Вы можете использовать "инструменты разработчика" из IE.

Просто нажмите F12, чтобы активировать его.

  • В старых версиях это находится в меню инструментов , измените строку агента пользователя и настройте ее.

  • На более новых он находится в меню эмуляции .


После некоторых исследований я нашел несколько записей в реестре, которые можно настроить, чтобы изменить часть строки UA.

Чистый IE11 на Win7 использует Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

Win8 использует NT 6.3 и обычно где-то добавляет Touch .

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

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]

Просто учтите, что compatibility mode в IE также изменяет строку UA, чтобы показать прежнюю версию IE, чтобы "заставить" сервер думать, что это более старая версия (я думаю, что он использует IE6 или 7), так что, возможно, большая часть того, что вам нужно будет бесполезным, если кому-то понадобится использовать compatibility mode для загрузки веб-страницы.

1

Это было возможно в определенный момент времени, но эта функция устарела и больше не поддерживается напрямую.

Разница между строкой пользовательского агента, сообщаемой во время HTTP-согласования ("видимой сервером"), и значением, сообщаемым через свойство DOM, является преднамеренным изменением, разработанным (частично) для того, чтобы справляться с перегрузкой строки пользовательского агента людьми именно таким образом. ,

В первой статье описывается набор значений реестра, которые корректировали строку агента пользователя DOM за один раз; Вполне возможно, что настройки Post Platform продолжают работать. Вам необходимо настроить параметры для всех клиентских компьютеров, на которых запущен инструмент.

Если постплатформенные изменения не увенчались успехом, вам нужно будет рассмотреть другой подход, возможно, с использованием кроссплатформенной стратегии.

Надеюсь это поможет...

- Ланс

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .