一、user-agent-utils簡介
user-agent-utils 是一個用來解析 User-Agent 字符串的 Java 類庫。
其能夠識別的內容包括:
超過150種不同的瀏覽器;
7種不同的瀏覽器類型;
超過60種不同的操作系統(tǒng);
6種不同的設備類型;
9種不同的渲染引擎;
9種不同的Web應用,如HttpClient、Bot。
GitHub主頁:https://github.com/HaraldWalker/user-agent-utils
二、Maven依賴
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>1.21</version>
</dependency>
三、用例
在web應用中我們通過request獲取用戶的Agent:
String agent=request.getHeader("User-Agent");
如下,我們獲取了一個agent的字符串:
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"
由此,通過User-agent-utils解析:
String agent=request.getHeader("User-Agent");
//解析agent字符串
UserAgent userAgent = UserAgent.parseUserAgentString(agent);
//獲取瀏覽器對象
Browser browser = userAgent.getBrowser();
//獲取操作系統(tǒng)對象
OperatingSystem operatingSystem = userAgent.getOperatingSystem();
System.out.println("瀏覽器名:"+browser.getName());
System.out.println("瀏覽器類型:"+browser.getBrowserType());
System.out.println("瀏覽器家族:"+browser.getGroup());
System.out.println("瀏覽器生產廠商:"+browser.getManufacturer());
System.out.println("瀏覽器使用的渲染引擎:"+browser.getRenderingEngine());
System.out.println("瀏覽器版本:"+userAgent.getBrowserVersion());
System.out.println("操作系統(tǒng)名:"+operatingSystem.getName());
System.out.println("訪問設備類型:"+operatingSystem.getDeviceType());
System.out.println("操作系統(tǒng)家族:"+operatingSystem.getGroup());
System.out.println("操作系統(tǒng)生產廠商:"+operatingSystem.getManufacturer());
運行程序輸出內容:
瀏覽器名:Chrome 43
瀏覽器類型:WEB_BROWSER
瀏覽器家族:CHROME
瀏覽器生產廠商:GOOGLE
瀏覽器使用的渲染引擎:WEBKIT
瀏覽器版本:43.0.2357.81
操作系統(tǒng)名:Mac OS X
訪問設備類型:COMPUTER
操作系統(tǒng)家族:MAC_OS_X
操作系統(tǒng)生產廠商:APPLE
由此完成了用戶agent的解析。