繁体   English   中英

如何在web中检测用户操作系统/浏览器信息(使用php,js,html)?

[英]How to detect the user OS/browser info in web(using php, js, html)?

我们制作两个版本设置包,win-32.msi和win-64.msi,并将它们放到我们的网站供用户下载。

但我只是想使用一个网络链接。 当用户使用windows-32bit操作系统点击链接时,他会获得win-32.msi,使用windows-64-bit操作系统将获得win-64.msi。

我们在我们的网络代码中使用php,js,html,在apache中设置。

我们之前使用过一种方法:browsercap.ini。 但我们在win8-64bit中发现IE10浏览器给我们带来win8-32bit信息,这是错误的。

还有其他解决方案吗?

在Javascript中,您可以使用navigator对象获取有关本地系统的一些信息:

console.log(navigator.appVersion);    

在我的系统上,这会产生:

5.0(Macintosh; Intel Mac OS X 10_8_4)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 30.0.1599.69 Safari / 537.36

然后,您可以解析此问题以确定发送用户的位置。

作为替代方案,您也可以使用mod_rewrite并查看HTTP_USER_AGENT变量在Apache执行此操作。 有关这方面的更多信息可以在mod_rewrite文档中找到。

像这样的东西可以工作:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (WOW64|OtherMatch)
RewriteRule ^(/path/to/dl-packages)/win-32.msi $1/win-64.msi [R,L]

这更多是为了显示基本概念,你可能想要调整应该匹配64位客户端的(WOW64|OtherMatch)字符串,不确定WOW64是否匹配所有Windows 64位浏览器。 此外,我将URL与我的RewriteRule中的win-32.msi包匹配,这将是默认包,如果64位客户端尝试获取它,它将被重定向到64位版本。 根据您的网站,您可能希望以不同方式处理此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM