如何在Web服务器上检测移动客户端?

时间:2011-05-12 17:08:39

标签: mobile request http-headers webserver

当http请求进入我的服务器时,如何检测它是来自iphone,android还是其他设备?

3 个答案:

答案 0 :(得分:8)

您可以获取用户代理。这告诉它是什么浏览器类型(iphone,chrome,即任何东西)

为了帮助你:

http://whatsmyuseragent.com/

http://en.wikipedia.org/wiki/User_agent

答案 1 :(得分:7)

您需要检查HTTP请求的标头。您可以在“User-Agent”字段中找到正在使用的操作系统和浏览器。

如果您使用的是javascript,请使用navigator对象

navigator.userAgent

如果您使用的是php,则可以访问HTTP标头

$userAgent = $_SERVER["HTTP_USER_AGENT"];

答案 2 :(得分:0)

在其@dave-delongresponse状态,您可以使用User-Agent HTTP标头。

但是用户代理很难解析。

我建议您使用第三方库解析用户代理并检测移动设备。

在Node.js上

显然OP使用Node.js,然后可以使用mobiledetect.jsdemo)。

  

通过将模式与给定的用户代理字符串(手机,平板电脑,桌面,移动设备,操作系统,版本)进行比较来检测设备。

const MobileDetect = require('mobile-detect');

const md = new MobileDetect(req.headers['user-agent']);

console.log(md.mobile());   // 'Sony'
console.log(md.phone());    // 'Sony'
console.log(md.tablet());   // null

在PHP上

在PHP服务器上mobiledetectdemo)。

  

Mobile_Detect是一个用于检测移动设备(包括平板电脑)的轻量级PHP类。它使用User-Agent字符串与特定HTTP标头相结合来检测移动环境。