检测设备品牌
我正在从事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']
权限,这里是许多移动浏览器的列表 。