天天看點

如何不通過白名單擷取手機的UA

做手機應用,我們都希望使用者通路我們服務時,能夠獲得使用者的機型資訊,有兩種途徑:1)你的網站加入了移動的白名單清單,2)通過和支援白名單的第三方合作擷取;

如果你既不在白名單清單中,有不想支付費用,怎麼辦,其實可以用一種變通的方法,通過使用者請求的Http頭資訊,來識别出機型資訊。

1.  擷取HTTP的User-Agent資訊

可以使用Nginx(輕量級的Web 伺服器/反向代理伺服器 www.nginx.net),在Nginx的日志檔案中,記錄了使用者通路網站的資訊,包括Http頭中的User-Agent資訊。

例如:

218.202.106.201 - - [09/Jun/2011:09:40:48 +0800] "GET /masw/static/css/m1001.css HTTP/1.1" 200 2894 "http://wap.xxxx.cn/" "Nokia5330/5.0 (06.80) Profile/MIDP-2.1 Configuration/CLDC-1.1 Mozilla/5.0 AppleWebKit/420+ (KHTML, like Gecko) Safari/420+" "10.170.13.76"

218.202.106.201 - - [09/Jun/2011:09:40:58 +0800] "GET /masw HTTP/1.1" 302 0 "-" "Nokia5130/2.0 (07.95) Profile/MIDP-2.1 Configuration/CLDC-1.1" "10.144.2.86"

218.202.106.201 - - [09/Jun/2011:09:41:48 +0800] "GET /masw HTTP/1.1" 302 0 "-" "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN82/31.0.016; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413" "10.141.43.165"

我們可以看到這個3個請求來自:Nokia5330, Nokia5130和NokiaN82

Note: Nginx可以作為LoadBalance使用,效率高,配置簡單,穩定可靠

2. 根據User-Agent資訊,整理出機型關鍵字

例如:

27

 Nokia

 N81

 S

 4

 NokiaN81

 Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN81-3/11.0.045 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413

28

 Nokia

 7260

 F

 1

 Nokia7260

 Nokia7260/2.0 (05.90) Profile/MIDP-2.0 Configuration/CLDC-1.1

其中NokiaN81和Nokia7260就是機型關鍵字

3。根據機型關鍵字整理出機型清單

372 Nokia E71 SymbianOS s60 v3  S NokiaE71 

373 Nokia N81 SymbianOS s60 v3  S NokiaN81 

4。根據以上資料,就可以從User-Agent得到具體的機型了

5。代碼實作

可以用腳本自動實作上面的功能,推薦使用Python。

Vendor Phone Num Phone Percent
Nokia 2351 34.08%
Siemens 1131 16.40%
SonyEricsson 1115 16.16%
SAMSUNG 804 11.66%

上面是某省的資料,可見Nokia保有量還是很高的。