检测设备品牌

我正在从事networking分析。 我正在使用JavaScript客户端和NodeJS服务器端。 我知道我们可以使用userAgent查找设备types ,但是如何检测设备品牌(客户端或服务器端)?

你不能直接做; userAgent字段根本不包含供应商。 但是,您可以构build一个映射到特定供应商的userAgent标记库。 尽pipe如此,这将涉及到大量设备的研究和testing。

例如,userAgent中的“iOS”,“iPhone”或“iPad”可以安全地映射到“Apple”。 那么三星Galaxy S3,例如,在userAgent中的型号是“GT-I9300”。 然后,您可以将其映射到“三星”。 …然后你需要重复这个你想识别的其他设备。 在线查找用户代理string可能是最快的方法。

一个为你parsing的库是Platform.js ,你可以在客户端或者服务器端使用它,如上面链接的介绍页面所述。

这是一个客户端的例子:

  <script type='text/javascript' src='platform.js'></script> <script type='text/javascript'> alert('you are using ' + platform.description + ' on an ' + (platform.manufacturer || 'unknown vendor') ) </script> 

请注意,您不会在通用浏览器上获得制造商,但应该在移动设备上获得品牌,例如苹果,三星等。

在服务器端,你可以很容易地使用设备npm模块来做到这一点,如果你使用的是Express.js,那么它就像蛋糕一样容易。

安装模块。

 npm i --S express-device 

作为中间件添加在快速代码中。

 var express = require('express'); var app = express(); var device = require('express-device'); app.use(device.capture()); app.get('/hello',function(req,res) { res.send("Hi to "+req.device.type.toUpperCase()+" User"); }); app.listen(3000); console.log("Listening to Port 3000"); 

简单而甜美。

参考: https : //codeforgeek.com/2016/07/how-to-detect-device-type-in​​-nodejs/

通过userAgentstring检测可能会导致检测错误。 您可以将浏览器string更改为任何您想要的。 在大多数情况下,它不告诉你它是哪个设备。

您可能从客户端获得的每个数据都可能被欺骗,因此不要期望每个用户只传输100%正确的数据。

但是,您可以通过req.headers['user-agent']获取客户端req.headers['user-agent']权限,这里是许多移动浏览器的列表 。