【问题标题】:Detecting Internet Explorer bitness on the server side在服务器端检测 Internet Explorer 位数
【发布时间】:2023-12-23 11:18:02
【问题描述】:

我想为请求浏览器提供一个具有正确位数的 ActiveX 对象,这意味着 32 位 IE 的 32 位对象和 64 位 IE 的 64 位对象。为此,我正在寻找一些尽可能合理的标准来区分这两种 IE 架构。

为了在服务器端做出决定,我应该使用 User-Agent 请求头,所以问题归结为:给定 User-Agent 字符串,如何检测,使用常见的 JSP 机制,包括简单的Java,提交请求的IE实例的位数?

到目前为止,我发现 64 位实例在标头中包含字符串“Win64”和“x64”,而 32 位实例不包含。如果 IE 的所有版本和配置都遵循这种行为,那么 JSP 中的解决方案就像

<% boolean _64 = request.getHeader("User-Agent").contains("Win64") %>

我真的很想知道这种行为是否是官方的 IE 规范,所以我可以依靠它来处理从 IE7 到 IE9 的所有 IE 版本和配置。 Microsoft 是否发布了任何此类规范?

注意:我没有标记“Java”,因为答案很可能与其他语言相关。

【问题讨论】:

    标签: internet-explorer user-agent


    【解决方案1】:

    请参阅 IE 博客上的 this post,以及 MSDN 上的 this guide

    总而言之,WOW64; = 64 位 Windows 上的 32 位 IE。 Win64; x64; = 64 位操作系统上的 64 位 IE。但请注意,其他内容,例如 Windows NT 5.2 表示(可能)是 64 位操作系统。

    【讨论】:

    【解决方案2】:

    【讨论】:

    • 我接受了 Jeff 的回答,因为他发布了更完整的答案并且更早地做到了。也谢谢你!