簡體   English   中英

更改IE用戶代理

[英]Change IE user agent

我正在使用WatiN自動化Internet Explorer,到目前為止,一切都很棒。 但是,我真的很想能夠更改IE的用戶代理,以便服務器認為它實際上是Firefox或其他某種瀏覽器。

Firefox用戶代理字符串如下所示:

Mozilla / 5.0(Windows; U; Windows NT 6.1; zh-CN; rv: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");

我已經能夠從更改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; zh-CN; rv:1.9.2.13)

現在,問題是: 如何刪除Trident / 4.0部分並在括號后添加“ Gecko / 20101203 Firefox / 3.6.13”部分?

我真的很想在C#中以編程方式執行此操作,而不使用任何IE加載項。

提前致謝。

除非WebBrowser控件在UrlMkSetSessionOption()運行,否則do this in C# without any IE Addons沒有支持的方法,在這種情況下,您可以使用UrlMkSetSessionOption() API。 請參閱用戶代理字符串:使用和濫用

如果您願意使用add-ons ,請訪問http://www.enhanceie.com/ietoys/uapick.asp

現在,有一個我不建議這樣做的不受支持的技巧,即,您可以用Firefox UA的其余部分替換COMPATIBLE字符串,然后替換為CRLF和文本IGNORE: 這將導致HTTP標頭“包裝”到新的標頭中,因此您將發送類似於以下內容的標頭:

用戶代理:Mozilla / 5.0(Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.13)Gecko / 20101203 Firefox / 3.6.13 IGNORE:MSIE 8.0; Windows NT 6.1; 三叉戟/ 4.0; AskTbMP3R7 / 5.9.1.14019)

我無法想象您為什么要這樣做。 其他瀏覽器需要假裝為IE的情況並不少見,因為那些死胡同的網站仍然堅持阻止其他任何內容,但是我從未聽說有人想反其道而行之。 至少在最近十年左右。

無論如何,正如您已經發現的那樣,使用IE並不像使用其他瀏覽器那樣容易。

如果您真的想這樣做,我的建議是通過一個代理,並為您發送欺騙的用戶代理。 用任何一種語言寫都應該相對容易。 您可以在瀏覽器所在的本地計算機上運行代理,並且對瀏覽器用戶和網站都是透明的(位於本地計算機上,即使IP地址也正確,這可能是一個問題)對於遠程代理)

值得一提的是,某些防病毒/反惡意軟件應用實際上已經做到了這一點,可以選擇阻止用戶代理和引用數據以防止站點對其進行跟蹤。 據我所知,他們幾乎完全使用這種技術(這些本地代理也用於在惡意軟件到達瀏覽器之前對其進行過濾)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM