Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

利用 fingerprintjs2 区分用户设备 #61

Open
Dream4ever opened this issue Mar 21, 2019 · 0 comments
Open

利用 fingerprintjs2 区分用户设备 #61

Dream4ever opened this issue Mar 21, 2019 · 0 comments
Labels
Front-end Everything you see and experience JS Javascript

Comments

@Dream4ever
Copy link
Owner

Dream4ever commented Mar 21, 2019

需求描述

CNZZ 上虽然能够统计每天有多少用户访问网站,但是不知道这些用户设备的具体信息。

IIS 日志中虽然能够查看完整的访问请求,但是如果要查看用户的实际 IP 或者其它信息,依然很不方便。

那么能否利用 fingerprintjs2 这样的库,为用户使用的每一个设备生成指纹,并记录到数据库中或者别的什么地方。

先用自己的 iPhone 7 简单测试了一下,结果如下:

# 微信
ID: 5de4****
UA: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 MicroMessenger/7.0.3(0x17000321) NetType/4G Language/zh_CN

# TIM
ID: fb1f****
UA: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 QQ/6.5.5.0 TIM/2.3.0.401 V1_IPH_SQ_6.5.5_1_TIM_D Pixel/750 Core/UIWebView Device/Apple(iPhone 7) NetType/4G

# Safari
ID: bbc8****
UA: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1

# Chrome
ID: 78b3****
UA: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/73.0.3683.68 Mobile/15E148 Safari/605.1
Client Moz Device OS Version like Kernal Gecko Uniq
WeChat Mozilla/5.0 iPhone; CPU iPhone OS 12_1_4 like Mac OS X AppleWebKit/605.1.15 KHTML, like Gecko Mobile/16D57 MicroMessenger/7.0.3(0x17000321) NetType/4G Language/zh_CN
TIM Mozilla/5.0 iPhone; CPU iPhone OS 12_1_4 like Mac OS X AppleWebKit/605.1.15 KHTML, like Gecko Mobile/16D57 QQ/6.5.5.0 TIM/2.3.0.401 V1_IPH_SQ_6.5.5_1_TIM_D Pixel/750 Core/UIWebView Device/Apple(iPhone 7) NetType/4G
Safari Mozilla/5.0 iPhone; CPU iPhone OS 12_1_4 like Mac OS X AppleWebKit/605.1.15 KHTML, like Gecko Version/12.0 Mobile/15E148 Safari/604.1
Chrome Mozilla/5.0 iPhone; CPU iPhone OS 12_1 like Mac OS X AppleWebKit/605.1.15 KHTML, like Gecko CriOS/73.0.3683.68 Mobile/15E148 Safari/605.1

从上面统计的 UserAgent 可以看出来,同一个手机,用不同的软件访问同一个页面,得到的 UserAgent 是不同的。

不过考虑到用户的实际使用场景,不管是用电脑还是手机来访问页面,一般都会固定使用一个浏览器,除非页面显示不正常,才会换浏览器。这么说的话,就用 fingerprintjs2 这个库来统计访客设备就行了,同一个手机不同软件的情况占总访问量的比例非常小,对统计结果造不成什么污染。

用部门的三星平板和自己的 iPhone 7 连上同一个 WiFi,然后上 ip138.com 查看外网 IP,发现分配到的是相同的 IP。这样的话,就说明同一个局域网下的设备,外网 IP 是相同的,所以没什么参考价值。

@Dream4ever Dream4ever added Front-end Everything you see and experience JS Javascript labels Apr 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Front-end Everything you see and experience JS Javascript
Projects
None yet
Development

No branches or pull requests

1 participant