You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

deviceinfo.me如何检测手机型号?JavaScript无UA型号检测方法探究

用JavaScript检测手机型号:deviceinfo.me的实现原理分析

当User Agent(UA)缺失型号信息时,deviceinfo.me这类网站主要依靠多维度设备特征组合匹配来识别手机型号,核心思路是收集设备的硬件、系统、渲染特性等独有的指纹信息,和预设的设备数据库比对,具体实现方式包括以下几种:

  • 硬件参数采集与匹配
    通过Web API获取设备的硬件细节:

    • 屏幕相关:screen.width/screen.height(分辨率)、window.devicePixelRatio(屏幕像素密度),不同型号手机的屏幕参数组合往往具有唯一性;
    • CPU与性能:navigator.hardwareConcurrency(CPU核心数),结合设备的性能测试(比如Canvas渲染帧率),能区分不同定位的机型;
    • 触摸特性:navigator.maxTouchPoints(支持的最大触摸点数),旗舰机和入门机型的触摸点数通常有差异。
  • GPU渲染特性识别
    利用WebGL或Canvas获取GPU的支持能力:

    • 通过gl.getSupportedExtensions()获取设备支持的WebGL扩展列表,不同厂商的GPU(如高通Adreno、苹果A系列、联发科Mali)的扩展组合存在明显差异;
    • 测试Canvas的渲染精度、色彩表现或特定图形的绘制速度,这些特性和GPU型号强绑定,进而关联到具体手机型号。
  • 系统与API细节提取
    即使UA缺失型号,通常仍包含系统版本信息(如Android 13、iOS 16),结合以下信息缩小范围:

    • navigator.platform(区分iOS/Android等系统)、navigator.vendor(设备厂商相关标识);
    • 电池API:navigator.getBattery()获取的电池容量、充电效率等参数,部分机型的电池参数是独有的;
    • 系统API支持情况:比如是否支持特定的Web API(如MediaDevices.enumerateDevices()返回的摄像头信息),不同机型的硬件配置(摄像头数量、分辨率)也能作为识别依据。
  • 多维度指纹匹配
    将上述所有采集到的特征组合成一个唯一的设备指纹,和预先构建的海量设备数据库(包含已知型号的所有特征参数)进行比对,通过匹配度最高的条目确定手机型号。这种方式不需要依赖UA中的型号字段,只要设备的特征组合足够独特,就能精准识别。

内容的提问来源于stack exchange,提问作者perun_the_mighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:03:13