whoisharry
V2EX  ›  分享创造

手机型号识别工具

By whoisharry at 2018 年 8 月 7 日 · 14593 次点击

因公司需要,开发了一个手机型号识别工具,可以根据 UserAgent 等信息自动判断手机品牌和型号。目前准确率还可以,后期可以通过不断更新特征库来提高准确率。

大家可以测试一下: http://138.wenjuan.com/

如果自己项目中需要使用,可以联系我。

第 1 条附言  ·  2018 年 8 月 8 日
刚刚登录系统,发现不少热心网友提供了识别错误的反馈信息。对于这些反馈信息,我还需要 google 一下看看网友提供的信息是否准确,之后再去更新特征库,花了大概一个小时。大家可以再测试看看。

由于是根据 UserAgent 来识别的,有些手机的 UA 很不规范,甚至是错误的,这种情况,就算反馈了也不会更新到系统里去。比如,未能识别出来的一个手机,网友反馈是 1 加 3T,可是看他的 UA 是这样的:
Mozilla/5.0 (Linux; Android 8.0.0; Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Mobile Safari/537.36 ,这里没有任何特征串可以识别。

@yxjxx 识别错误的,更可能在这里回复,大部分正确的,你看不到,所以看上去的确是车祸现场。我刚刚更新了特征库,应该会好很多了。这是 @weishu 的回复:的确是这样的,识别正确的一般不会说。我三台手机,一台 iPhone6,一台 MIX 2S,一台 Nexus 5X,均能正确识别。

@sobigfish 提到机型显示 Apple 比 苹果 更好,已经改好了。

@Cytion 一加 5 刷完安卓 p 后 型号就成了 pixel。
刷完安卓 P,UserAgent 信息全变了,取不到一加的任何信息,所以。。。臣妾做不到啊!
83 条回复  •  2024-01-11 15:22:32 +08:00
cydian
   1
cydian  
   2018 年 8 月 7 日 via Android
我还是好奇地点开了。
只用了一台设备。
网页就显示不正确了。
没有修改过 UA,Chrome 手机。
whoisharry
   2
whoisharry  
OP
   2018 年 8 月 7 日
不应该啊,很简单的一个页面,就算没识别出来,也不会导致页面显示不正确。我找过很多同事测试过,没有遇到你说的情况。我的手机是荣耀 V9,可以正确识别。
tuding
   3
tuding  
   2018 年 8 月 7 日
手机品牌:未知
手机型号:未知
wxsm
   4
wxsm  
   2018 年 8 月 7 日
iphone7 正确识别。请问除了 UA 以外,还用到了什么信息呢?
affyun
   5
affyun  
   2018 年 8 月 7 日 via Android
同样是未知
Pythondr
   6
Pythondr  
   2018 年 8 月 7 日 via Android
未知
imdong
   7
imdong  
   2018 年 8 月 7 日
未知未知 魅蓝 Note6
98jiang
   8
98jiang  
   2018 年 8 月 7 日
小米 6 准确
jayzhong
   9
jayzhong  
   2018 年 8 月 7 日
我的锤子就没识别出来
beaconfire
   10
beaconfire  
   2018 年 8 月 7 日

@whoisharry 场面 一度 十分 尴尬
U7Q5tLAex2FI0o0g
   11
U7Q5tLAex2FI0o0g  
   2018 年 8 月 7 日
sony z5p
手机品牌:未知
手机型号:未知

尴尬。。。
Cytion
   12
Cytion  
   2018 年 8 月 7 日 via Android
一加 5+Android P,直接识别成了 pixel

好吧我是杠精,楼主辛苦了
Dori
   13
Dori  
   2018 年 8 月 7 日
MIX2S 识别为 MIX2
ambmh
   14
ambmh  
   2018 年 8 月 7 日
Lumia 630 识别为 苹果 iphone
woxppooo
   15
woxppooo  
   2018 年 8 月 7 日
显示荣耀 10,但其实是 nova
easylee
   16
easylee  
   2018 年 8 月 7 日 via Android
诺基亚 8 无法识别
luob
   17
luob  
   2018 年 8 月 7 日
那么问题来了,可以识别我的手机的颜色吗(逃
alvin666
   18
alvin666  
   2018 年 8 月 7 日 via Android
那么问题来了,可以识别我手机壳的颜色吗
keventseng
   19
keventseng  
   2018 年 8 月 7 日
恩,看来我的大锤子还是太小众了。
jasonyang9
   20
jasonyang9  
   2018 年 8 月 7 日 via Android
诺记 1110 无法识别
StederLee
   21
StederLee  
   2018 年 8 月 7 日 via Android
三星 S8 可以
黑莓 Priv 未知
seon
   22
seon  
   2018 年 8 月 7 日 via Android
MIX2S 识别成 MIX2
Yishanshan
   23
Yishanshan  
   2018 年 8 月 7 日 via Android
小米 5s 识别成 5
Sullivan
   24
Sullivan  
   2018 年 8 月 7 日
坚果 3 未知
b0
   25
b0  
   2018 年 8 月 7 日
Honor8 可以
binghe
   26
binghe  
   2018 年 8 月 7 日
我的手机完全识别错误

yxjxx
   27
yxjxx  
   2018 年 8 月 7 日
堪比车祸现场
ionblue
   28
ionblue  
   2018 年 8 月 7 日 via Android
手机品牌:未知
手机型号:未知
donething
   29
donething  
   2018 年 8 月 7 日
@beaconfire 你手机啥型号啊?看起来挺好看的
zhouyut001
   30
zhouyut001  
   2018 年 8 月 7 日 via Android
Mi5,正确的应该是 MI5S
adyyq
   31
adyyq  
   2018 年 8 月 7 日 via Android
手机品牌:
魅族
手机型号:
魅蓝 metal
Z1on
   32
Z1on  
   2018 年 8 月 7 日 via Android
索尼 xz
未知 未知
ihacku
   33
ihacku  
   2018 年 8 月 8 日 via iPhone
可以开源出来大家帮忙校正一下?
zhanao1994
   34
zhanao1994  
   2018 年 8 月 8 日 via Android
荣耀 9 识别成荣耀 8,误差很小😂
ke5211314
   35
ke5211314  
   2018 年 8 月 8 日
我也 识别错误 小米 8
sdshdv
   36
sdshdv  
   2018 年 8 月 8 日 via Android
我的 pixel xl 识别成了 pixel 也算是个小错误
mozutaba
   37
mozutaba  
   2018 年 8 月 8 日
@wxsm 通过计算网页请求耗时+渲染时间来识别机型
GaryBI1STP
   38
GaryBI1STP  
   2018 年 8 月 8 日 via Android
和浏览器也有关系,一个识别出来了另一个浏览器没有识别出来
inhzus
   39
inhzus  
   2018 年 8 月 8 日 via Android
华为 p9,最低配版识别为高配版
beaconfire
   40
beaconfire  
   2018 年 8 月 8 日
@donething 跳水冠军魅族 PRO7[手动滑稽]
innoink
   41
innoink  
   2018 年 8 月 8 日 via Android
用 Firefox 打开,未知
用自带浏览器打开,请使用安卓或 iPhone 手机打开本页面
donething
   42
donething  
   2018 年 8 月 8 日
@beaconfire 魅族。。[再见]
gbin
   43
gbin  
   2018 年 8 月 8 日 via Android
小米 Note 3 正常。

@wxsm 我感觉除了 UA 还用了 navigator.appVersion
WuwuGin
   44
WuwuGin  
   2018 年 8 月 8 日
sony 手机被开除手机籍系列
Hydjan
   45
Hydjan  
   2018 年 8 月 8 日 via Android
未知,未知
opengps
   46
opengps  
   2018 年 8 月 8 日
ua 不可靠,我这里有 2 万多条不重复的 ua,你要不要测试下
LeungJZ
   47
LeungJZ  
   2018 年 8 月 8 日
尴尬,浏览器一直用的是 iPhone 的 UA。
https://ww3.sinaimg.cn/large/005YhI8igy1fu21axnawbj30u01rcabf
carolhai
   48
carolhai  
   2018 年 8 月 8 日
我的就中了,一加,一加 5T
zj299792458
   49
zj299792458  
   2018 年 8 月 8 日 via iPhone
抽奖现场么。话说这么多手机型号都是人工采集的?
yws112358
   50
yws112358  
   2018 年 8 月 8 日
用 chrome 模拟 识别为手机? 这个算准确吗? ipad 貌似不识别
run2
   51
run2  
   2018 年 8 月 8 日
可以把苹果改为 Apple 么-。-
wanwaneryide
   52
wanwaneryide  
   2018 年 8 月 8 日
用电脑端,改了改 UserAgent,一样能访问
conwey
   53
conwey  
   2018 年 8 月 8 日
识别还算得上准确。
whoisharry
   54
whoisharry  
OP
   2018 年 8 月 8 日
刚刚登录系统,发现不少热心网友提供了识别错误的反馈信息。对于这些反馈信息,我还需要 google 一下看看网友提供的信息是否准确,之后再去更新特征库,花了大概一个小时。大家可以再测试看看。

由于是根据 UserAgent 来识别的,有些手机的 UA 很不规范,甚至是错误的,这种情况,就算反馈了也不会更新到系统里去。比如,未能识别出来的一个手机,网友反馈是 1 加 3T,可是看他的 UA 是这样的:
Mozilla/5.0 (Linux; Android 8.0.0; Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Mobile Safari/537.36 ,这里没有任何特征串可以识别。
whoisharry
   55
whoisharry  
OP
   2018 年 8 月 8 日
@wxsm iPhone 机型的识别,根据 UA 是不够的,还用到了 CPU 运算速度,屏幕大小,分辨率这几个参数。
whoisharry
   56
whoisharry  
OP
   2018 年 8 月 8 日   ❤️ 1
@yxjxx 识别错误的,更可能在这里回复,大部分正确的,你看不到,所以看上去的确是车祸现场。我刚刚更新了特征库,应该会好很多了。
whoisharry
   57
whoisharry  
OP
   2018 年 8 月 8 日
@opengps 对于安卓手机,除了 UA 可以利用之外,想不到有其他办法。其实只要 UA 稍微规范一点,识别率还是可以满足要求的。
whoisharry
   58
whoisharry  
OP
   2018 年 8 月 8 日
@conwey 多谢鼓励!
greed1is9good
   59
greed1is9good  
   2018 年 8 月 8 日
其实就是看浏览器能不能识别手机型号。这个页面只是提取浏览器提交的 ua 中手机型号信息。
whoisharry
   60
whoisharry  
OP
   2018 年 8 月 8 日
@wanwaneryide 是的,你修改了 UA,就会识别错误
whoisharry
   61
whoisharry  
OP
   2018 年 8 月 8 日
@opengps 我会尽量把它做的可靠。只有 UA 数据,并不能帮到我,因为你不能告诉我识别结果是对还是错。
SuT2i
   62
SuT2i  
   2018 年 8 月 8 日
正确
lrzsw2008
   63
lrzsw2008  
   2018 年 8 月 8 日 via Android
黑莓 keyone 未知 尴尬.lz 有心回头可以告诉我几台 keyone
fcmio
   64
fcmio  
   2018 年 8 月 8 日 via Android
pixel 识别正常
initdrv
   65
initdrv  
   2018 年 8 月 8 日 via iPhone
识别准确,赞! iPhone 6
dream7758522
   66
dream7758522  
   2018 年 8 月 8 日 via Android
@whoisharry 能否同时显示出 ua
whoisharry
   67
whoisharry  
OP
   2018 年 8 月 8 日
@lrzsw2008 现在可以了,您再试试看?
weishu
   68
weishu  
   2018 年 8 月 8 日   ❤️ 1
@whoisharry 的确是这样的,识别正确的一般不会说。我三台手机,一台 iPhone6,一台 MIX 2S,一台 Nexus 5X,均能正确识别。
whoisharry
   69
whoisharry  
OP
   2018 年 8 月 8 日
@sobigfish 感觉 Apple 比苹果更好是吗?可以改,已经改好了。
whoisharry
   70
whoisharry  
OP
   2018 年 8 月 8 日
@dream7758522 这个很容易,但是这个需求提的人不多,暂时不会加上去,抱歉。
whoisharry
   71
whoisharry  
OP
   2018 年 8 月 8 日
@weishu 嗯,谢谢鼓励!
CHN
   72
CHN  
   2018 年 8 月 8 日
你们还是和之家基佬寻求合作吧
CHN
   73
CHN  
   2018 年 8 月 8 日
@beaconfire 请问你这个什么手机
Level6
   74
Level6  
   2018 年 8 月 8 日
@Cytion 一加 5 刷完安卓 p 后 型号就成了 pixel
whoisharry
   75
whoisharry  
OP
   2018 年 8 月 8 日
@Level6 刷完安卓 P,UserAgent 信息全变了,取不到一加的任何信息,所以。。。臣妾做不到啊!
beaconfire
   76
beaconfire  
   2018 年 8 月 9 日
@CHN 跳水冠军魅族 PRO7[手动滑稽]
dewi
   77
dewi  
   2018 年 8 月 9 日
ChromeF12 显示的是 Google Nexus 5
bilibiliQQ
   78
bilibiliQQ  
   2018 年 8 月 12 日
可以通过 javascript 获取机身 IMEI,然后通过 IMEI 去数据库中调取对应的手机型号这样比较准。
demo
whoisharry
   79
whoisharry  
OP
   2018 年 8 月 13 日
@bilibiliQQ

"可以通过 javascript 获取机身 IMEI",这个,真的可以吗?好像做不到吧。
15313029517
   80
15313029517  
   2018 年 10 月 2 日 via Android
@jayzhong 我是坚果 R1,显示锤子。哈哈哈,只显示品牌。
zhouluo
   81
zhouluo  
   2018 年 12 月 8 日
你好,可以给一些资料信息吗?对这个比较感兴趣。
whoisharry
   82
whoisharry  
OP
   2022 年 12 月 10 日
4 年了,手机型号库持续更新中。
顶起来,给有需要的人!
tianmingrui
   83
tianmingrui  
   2024 年 1 月 11 日
@whoisharry 您好,刚好有这个需求,如何联系
爱意满满的作品展示区。
© 2026 V2EX · 144ms · 3.9.8.5