网站如何找出访问它们的浏览器

时间:2009-11-28 05:18:02

标签: c# asp.net browser user-agent

网站如何找出正在访问的浏览器

我该怎么做

您是否为asp.net c#

提供答案

3 个答案:

答案 0 :(得分:10)

他们会查找请求中传递的用户代理。

在ASP.NET中:

Request.ServerVariables["HTTP_USER_AGENT"]

答案 1 :(得分:4)

浏览器告诉服务器它在User-Agent字符串中的浏览器类型,它包含在每个HTTP请求中。

您可以直接访问User-Agent并自行解析,也可以使用ASP.NET的内置浏览器功能,该功能依赖于几个* .browser文件,正则表达式等。

User-Agent: <%= Request.UserAgent %>
ID: <%= Request.Browser.Id %>
Browser: <%= Request.Browser.Browser %>
Type: <%= Request.Browser.Capabilities["type"] %>

答案 2 :(得分:3)

HTTP协议提供request header的属性,称为用户代理,客户端(此处为Web浏览器)使用标识浏览器品牌,版本和操作系统。与HTTP标头的所有元素一样,此信息可能会因各种目的而被“欺骗”或更改(例如,通过各种客户端隐私网关等),但它通常相对可靠。

此类User-Agent字符串的一个示例是(此处为FireFox浏览器,3.5版,在Windows XP下运行)

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5

接收应用程序可以查询此信息以及标头中的其他属性。虽然细节从一种语言/框架到下一种语言/框架不同,但是这些语言/框架可能会暴露出一个简单的对象模型,它反映了与HTTP协议相关的各种对象。对于http标头,这通常来自“请求”(可能以不同方式命名)对象,因此访问用户代理可能类似于:

  ClientBrowser = Request.Header("User-Agent")

或可能

  ClientBrowser = HttpHeader.UserAgent

修改:如果是 C#/ ASP.NET (问题的后期编辑):

ClientBrowser = Request.ServerVariables("HTTP_USER_AGENT")

此外,虽然您可能想直接使用此信息,但您也可以依赖各种库来封装解析[很多版本的] User-Agent 字符串的细节。特定的网络浏览器,甚至特殊形式的javascript,应该发送这样的客户端。