为了账号安全,请及时绑定邮箱和手机立即绑定

从用户代理或Java代码检测64位或32位Windows?

从用户代理或Java代码检测64位或32位Windows?

墨色风雨 2019-11-28 10:42:03
我想提供正确的下载版本。我的版本是:32位Windows64位Windows的Linux使用“用户代理”字段检测Linux很容易。但是可以可靠地确定Windows是32位还是64位?用户可能使用的是奇怪的浏览器-IE和Firefox很常见,我们可能在某个地方有Opera用户。也许还有Chrome用户。我知道64位Windows 7附带了IE的32位和64位版本,我想将下载的64位版本都发送给他们。(编辑添加:我知道我应该提供所有选项,但是我会的。但是人们不会阅读这些选项。因此,我希望默认情况下提供正确的下载,以提高可用性。当然,这是有帮助的如果我做对了,如果我做错了,那将是无济于事的。从目前的答案来看,这似乎还没有可靠的方法)。
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

我已经做了一些测试。以下是结果,希望对您有所帮助:


64位MacOS + 64位Safari或32位Chrome:

window.navigator.platform = MacIntel


32位Windows +野生动物园:

window.navigator.platform = Win32


64位Windows + 64位IE:

window.navigator.platform = Win64

window.navigator.cpuClass = x64


64位Windows + 32位IE:

window.navigator.platform = Win32

window.navigator.cpuClass = x86


64位Windows + 32 Firefox(或Chrome):

window.navigator.platform = Win32


32位Linux Mint(i686)+ firefox:

window.navigator.platform = Linux i686


64位Ubuntu(x86_64)+ 32位Chrome:

window.navigator.platform = Linux i686


64位Ubuntu + 64位主显节:

window.navigator.platform = Linux x86_64

到目前为止,我已经使用以下代码:


deployJava.isWin64OS = function() {

    return navigator.userAgent.indexOf('WOW64')>-1 || window.navigator.platform=='Win64';

};


查看完整回答
反对 回复 2019-11-28
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

通过分析大约14000个唯一的用户代理(从此处开始),我提出了以下字符串来寻找:


x86_64

x86-64

Win64的

x64; (请记住分号!没有它,您将有假阳性。)

amd64

AMD64

WOW64

x64_64

此外,尽管它们具有不同的指令集并且与Intel x86_64不兼容,但是您可能需要检测以下内容:


ia64

sparc64

ppc64

IRIX64

但是要当心,不要只寻找包含“ 64”甚至“ x64”的东西。Chrome的内部版本号,爬虫/漫游器,库,.NET版本,分辨率等也可能包含字符串“ x64”,而仍然是32位(或其他)操作系统。


请注意,您可以搜索所有不区分大小写的字符串。


我无法在ARM上找到任何东西。也许有人吗?请编辑,这是一个社区Wiki。


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 753 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信