位或32
我想提供正确的下载版本。 我拥有的版本是:
使用User Agent字段检测Linux很容易; 但是如果Windows是32位还是64位,是否可以可靠地确定?
用户可能会使用奇怪的浏览器 - IE和Firefox很常见,我们可能在某个地方有Opera用户; 也许是Chrome用户。 我知道64位Windows 7带有32位和64位版本的IE,并且我想向他们发送我的下载的64位版本。
(编辑补充:我知道我应该提供所有选项,但我会这样做,但人们不会阅读这些选项,因此我希望默认提供正确的下载,以提高可用性。如果我做得对,如果我弄错了,这是非常没有帮助的。从迄今为止的答案来看,它看起来并不像这样做的可靠方法)。
试试这个,在用户代理字符串中查找WOW64(32位,64位)或Win64(本机64位)。
if (navigator.userAgent.indexOf("WOW64") != -1 ||
navigator.userAgent.indexOf("Win64") != -1 ){
alert("This is a 64 bit OS");
} else {
alert("Not a 64 bit OS");
}
我做了一些测试。 这里是结果,希望它有帮助:
64 bit MacOS + 64 bit Safari or 32 bit Chrome: window.navigator.platform=MacIntel 32 bit windows + safari: window.navigator.platform=Win32 64 bit Windows + 64 bit IE: window.navigator.platform=Win64 window.navigator.cpuClass=x64 64 bit Windows + 32 bit IE: window.navigator.platform=Win32 window.navigator.cpuClass=x86 64 bit Windows + 32 Firefox (or Chrome): window.navigator.platform=Win32 32 bit linux mint (i686) + firefox: window.navigator.platform=Linux i686 64 bit Ubuntu (x86_64) + 32 bit Chrome: window.navigator.platform=Linux i686 64 bit Ubuntu + 64 bit Epiphany: window.navigator.platform=Linux x86_64
到目前为止,我已经使用这个代码:
deployJava.isWin64OS = function() {
return navigator.userAgent.indexOf('WOW64')>-1 || window.navigator.platform=='Win64';
};
分析大约14000个独特的用户代理(从这里),我想出了以下字符串来寻找:
此外,尽管它们有不同的指令集,并且与Intel x86_64不兼容,但您可能需要检测以下内容:
但要小心,不要只是寻找包含“64”甚至“x64”的东西。 Chrome的内部版本号,蜘蛛/僵尸程序,库,.NET版本,解析等可能还包含字符串“x64”,同时仍是32位(或其他)操作系统。
请注意,您可以不区分大小写地搜索所有这些字符串。
我一直无法在ARM上找到任何东西。 也许是别人? 请编辑,它是一个社区wiki。
链接地址: http://www.djcxy.com/p/51907.html上一篇: bit or 32