当http请求来到我的服务器时,我如何检测它是否来自iPhone,Android或其他设备?
您可以获取用户代理。这告诉它是什么浏览器类型(iphone,chrome,即任何东西)
为了帮助您:
http://whatsmyuseragent.com/
http://en.wikipedia.org/wiki/User_agent
您需要检查 HTTP 请求的标头。您可以在"用户代理"字段中找到正在使用的操作系统和浏览器。
如果您使用的是 javascript,请使用 navigator
对象
navigator.userAgent
如果您使用的是 php,那么您可以访问 HTTP 标头
$userAgent = $_SERVER["HTTP_USER_AGENT"];
正如@dave-delong在他的回应中所说的那样,你可以使用User-Agent HTTP标头。
但是用户代理可能很难解析。
我建议您使用第三方库来解析User-Agent和检测移动设备。
在节点上.js
显然OP使用Node.js然后可以使用mobiledetection.js(演示)。
通过将模式与给定的用户代理字符串(手机、平板电脑、台式机、移动级、操作系统、版本)进行比较来检测设备。
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 服务器上移动检测(演示)。
Mobile_Detect 是一个轻量级的 PHP 类,用于检测移动设备(包括平板电脑)。它使用用户代理字符串与特定 HTTP 标头相结合来检测移动环境。