通过 User-Agent 请求头判断设备类型
2017-03-27 00:00
573 查看
接到了一个要根据不同设备(Android/iOS)跳转到不同链接的需求,然后自然地想到使用 User-Agent 来判断设备类型。
我们就随机抓取了一些,分析字符串:
经过分析发现,只区分 Android/iOS 的话,标志性字符串非常明显。
下面以 Java 为例实现该逻辑:
大功告成。
我们就随机抓取了一些,分析字符串:
Mac Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36 iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Version/10.0 Mobile/14D27 Safari/602.1 Nexus Mozilla/5.0 (Linux; Android 5.0; Nexus 5 Build/LRX21O) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.95 Mobile Safari/537.36 OPPO Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; OPPO R7sm Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/38.0.0.0 Mobile Safari/537.36 OppoBrowser/4.2.8 华为 Mozilla/5.0 (Linux; Android 7.0; HUAWEI NXT-TL00 Build/HUAWEINXT-TL00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 小米 Mozilla/5.0 (Linux; U; Android 6.0.1; zh-cn; MI 5s Build/MXB48T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.146 Mobile Safari/537.36 XiaoMi/MiuiBrowser/8.7.1
经过分析发现,只区分 Android/iOS 的话,标志性字符串非常明显。
下面以 Java 为例实现该逻辑:
public static boolean isAndroid(String ua) { return ua.contains("linux") || ua.contains("android") || ua.contains("adr") || ua.contains("okhttp"); } public static boolean isIOS(String ua) { return ua.contains("darwin") || ua.contains("iphone") || ua.contains("ipad") || ua.contains("ipod") || ua.contains("macintosh") || ua.contains("cfnetwork"); }
大功告成。
相关文章推荐
- php通过http_user_agent判断用户设备类型(脑残版)
- 通过HTTP请求的user-agent判断用户设备
- Java通过浏览器请求头(User-Agent)获取 浏览器类型,操作系统类型,手机机型
- Java通过浏览器请求头(User-Agent)获取 浏览器类型,操作系统类型,手机机型
- Java通过浏览器请求头(User-Agent)获取 浏览器类型,操作系统类型,手机机型
- PHP根据User_Agent判断设备类型
- 通过navigator.userAgent判断浏览器类型
- HTTP请求中的User-Agent 判断浏览器类型的各种方法 网络爬虫的请求标示
- HTTP请求中的User-Agent 判断浏览器类型的各种方法 网络爬虫的请求标示
- Java(android)通过请求头(User-Agent)获取浏览器类型,操作系统类型,手机机型
- 通过navigator.userAgent判断浏览器类型
- Java通过浏览器请求头(User-Agent)获取 浏览器类型,操作系统类型,手机机型
- 使用window.navigator.userAgent属性判断浏览器类型及版本
- navigator.userAgent.indexOf来判断浏览器类型
- 根据USER-AGENT判断手机类型并跳转到相应的app下载页面
- 判断浏览器类型-----------navigator.userAgent.indexOf()
- 使用window.navigator.userAgent属性判断浏览器类型及版本
- 通过http user-agent判断是否为手机浏览器
- navigator.userAgent.indexOf来判断浏览器类型
- 51degrees.mobi 开源类库介绍,通过User-Agent的信息判断出手机的型号