2011-01-09 2 views
2

Я использую WatiN для автоматизации Internet Explorer, и до сих пор это было здорово. Тем не менее, мне бы очень хотелось иметь возможность изменять пользовательский агент IE, поэтому сервер думает, что это на самом деле Firefox или какой-то другой браузер.Изменение пользовательского агента IE

Firefox, UserAgent строка выглядит примерно так:

Mozilla/5.0 (Windows; U; Windows NT 6.1; EN-US; с.в.: 1.9.2.13) Gecko/20101203 Firefox/3.6.13

с помощью следующего кода

RegistryKey ieKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent"); 
      ieKey.SetValue("", "Mozilla/5.0"); 
      ieKey.SetValue("Compatible", "Windows"); 
      ieKey.SetValue("Version", "U"); 
      ieKey.SetValue("Platform", "Windows NT 5.1; en-US"); 
      ieKey.DeleteSubKeyTree("Post Platform"); 

Я был в состоянии изменить UserAgent строку IE из

Mozilla/4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident/4.0; AskTbMP3R7/5. 9.1.14019)

к

Mozilla/4.0 (Windows; U; Windows NT 6.1; Trident/4.0; EN-US; rv: 1.9.2.13)

Теперь, вопрос: Как удалить часть Trident/4.0 и добавить часть «Gecko/20101203 Firefox/3.6.13» после круглых скобок?

Я бы очень хотел сделать это программно в C#, не используя IE-надстройки.

Заранее благодарен.

+0

Отметить этот комментарий к 2-му ответу: D – Ahmed

ответ

4

Нет никакого поддерживаемого способа для do this in C# without any IE Addons, если только элемент управления WebBrowser не работает в proc, и в этом случае вы можете использовать API UrlMkSetSessionOption(). См The User-Agent String: Use and Abuse

Если вы готовы использовать add-ons см http://www.enhanceie.com/ietoys/uapick.asp

Теперь, есть неподдерживаемый хак, чтобы сделать это, что я не recommend-- именно, вы могли бы заменить COMPATIBLE строку с остатком Firefox UA, а затем CRLF и текст IGNORE:. Это приведет к тому, что HTTP-заголовок «обернется» в новый заголовок, поэтому вы отправляете заголовки, которые выглядят примерно так:

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en -US; rv: 1.9.2.13) Gecko/20101203 Firefox/3.6.13 IGNORE: MSIE 8.0; Windows NT 6.1; Trident/4.0; AskTbMP3R7/5.9.1.14019)

+0

Спасибо за ваш ответ. Я уже сделал что-то, что делает useragent следующим: Mozilla/5.0 (совместимо; MSIE 8.0; X11; U; Linux i686; ru -US; rv: 1.9.1a2pre) (Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8; Trident/4.0). Вы можете четко видеть кронштейн перед Gecko, который обычно не появляется, но, надеюсь, этого будет достаточно для моих нужд. Я также попробую методы, предложенные вами. Благодаря! – Ahmed

1

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

В любом случае, как вы уже нашли, это не так просто сделать с IE, как с другими браузерами.

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

Для этого некоторые антивирусные/антивирусные приложения действительно делают это уже, имея опции для блокировки пользовательского агента и реферальных данных, чтобы сайты не отслеживали их. Насколько я знаю, они используют в значительной степени именно этот tecnique (те же локальные прокси-серверы также используются для фильтрации вредоносного ПО до того, как он попадет в браузер).

+0

Спасибо за ваш ответ. Причина, по которой я это делаю, заключается в том, что я иногда управляю несколькими учетными записями онлайн-игры, в которую я играю, - и игра проверяет IP-адреса, пользовательские агенты, файлы cookie для проверки - это учетные записи, управляемые одним и тем же игроком. Я бы не хотел, чтобы меня обнаружили, поэтому я подумал, что могу сделать сменщик useragent в своем приложении. – Ahmed

+0

Мы столкнулись с этим, когда сайт клиента не обновил настольную версию своей страницы, но мобильная версия была в порядке. Они не планировали некоторое время обновлять рабочий стол, поэтому нам пришлось заставить браузер перейти в поддельный мобильный режим, чтобы получить лучшую версию веб-сайта. – firebellys

Смежные вопросы