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

我想提供正确的下载版本。我的版本是:


32位Windows

64位Windows

的Linux

使用“用户代理”字段检测Linux很容易。但是可以可靠地确定Windows是32位还是64位?


用户可能使用的是奇怪的浏览器-IE和Firefox很常见,我们可能在某个地方有Opera用户。也许还有Chrome用户。我知道64位Windows 7附带了IE的32位和64位版本,我想将下载的64位版本都发送给他们。


(编辑添加:我知道我应该提供所有选项,但是我会的。但是人们不会阅读这些选项。因此,我希望默认情况下提供正确的下载,以提高可用性。当然,这是有帮助的如果我做对了,如果我做错了,那将是无济于事的。从目前的答案来看,这似乎还没有可靠的方法)。


墨色风雨
浏览 762回答 3
3回答

收到一只叮咚

我已经做了一些测试。以下是结果,希望对您有所帮助:64位MacOS + 64位Safari或32位Chrome:window.navigator.platform = MacIntel32位Windows +野生动物园:window.navigator.platform = Win3264位Windows + 64位IE:window.navigator.platform = Win64window.navigator.cpuClass = x6464位Windows + 32位IE:window.navigator.platform = Win32window.navigator.cpuClass = x8664位Windows + 32 Firefox(或Chrome):window.navigator.platform = Win3232位Linux Mint(i686)+ firefox:window.navigator.platform = Linux i68664位Ubuntu(x86_64)+ 32位Chrome:window.navigator.platform = Linux i68664位Ubuntu + 64位主显节:window.navigator.platform = Linux x86_64到目前为止,我已经使用以下代码:deployJava.isWin64OS = function() {    return navigator.userAgent.indexOf('WOW64')>-1 || window.navigator.platform=='Win64';};

德玛西亚99

通过分析大约14000个唯一的用户代理(从此处开始),我提出了以下字符串来寻找:x86_64x86-64Win64的x64; (请记住分号!没有它,您将有假阳性。)amd64AMD64WOW64x64_64此外,尽管它们具有不同的指令集并且与Intel x86_64不兼容,但是您可能需要检测以下内容:ia64sparc64ppc64IRIX64但是要当心,不要只寻找包含“ 64”甚至“ x64”的东西。Chrome的内部版本号,爬虫/漫游器,库,.NET版本,分辨率等也可能包含字符串“ x64”,而仍然是32位(或其他)操作系统。请注意,您可以搜索所有不区分大小写的字符串。我无法在ARM上找到任何东西。也许有人吗?请编辑,这是一个社区Wiki。
打开App,查看更多内容
随时随地看视频慕课网APP