版权声明:有一种生活不去经历不知其中艰辛,有一种艰辛不去体会,不会知道其中快乐,有一种快乐,没有拥有不知其中纯粹 https://blog.csdn.net/wwwzydcom/article/details/84349661
解析工具类,调用第三方cz包
package com.sxt.etl.util;
import java.io.IOException;
import cz.mallat.uasparser.OnlineUpdater;
import cz.mallat.uasparser.UASparser;
/**
* 解析浏览器的user agent的工具类,内部就是调用这个uasparser jar文件
*
* @author root
*
*/
public class UserAgentUtil {
static UASparser uasParser = null;
// static 代码块, 初始化uasParser对象
static {
try {
uasParser = new UASparser(OnlineUpdater.getVendoredInputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 解析浏览器的user agent字符串,返回UserAgentInfo对象。<br/>
* 如果user agent为空,返回null。如果解析失败,也直接返回null。
*
* @param userAgent
* 要解析的user agent字符串
* @return 返回具体的值
*/
public static UserAgentInfo analyticUserAgent(String userAgent) {
UserAgentInfo result = null;
if (!(userAgent == null || userAgent.trim().isEmpty())) {
// 此时userAgent不为null,而且不是由全部空格组成的
try {
cz.mallat.uasparser.UserAgentInfo info = null;
info = uasParser.parse(userAgent);
result = new UserAgentInfo();
result.setBrowserName(info.getUaFamily());
result.setBrowserVersion(info.getBrowserVersionInfo());
result.setOsName(info.getOsFamily());
result.setOsVersion(info.getOsName());
} catch (IOException e) {
// 出现异常,将返回值设置为null
result = null;
}
}
return result;
}
/**
* 内部解析后的浏览器信息model对象
*
* @author root
*
*/
public static class UserAgentInfo {
private String browserName; // 浏览器名称
private String browserVersion; // 浏览器版本号
private String osName; // 操作系统名称
private String osVersion; // 操作系统版本号
public String getBrowserName() {
return browserName;
}
public void setBrowserName(String browserName) {
this.browserName = browserName;
}
public String getBrowserVersion() {
return browserVersion;
}
public void setBrowserVersion(String browserVersion) {
this.browserVersion = browserVersion;
}
public String getOsName() {
return osName;
}
public void setOsName(String osName) {
this.osName = osName;
}
public String getOsVersion() {
return osVersion;
}
public void setOsVersion(String osVersion) {
this.osVersion = osVersion;
}
@Override
public String toString() {
return "UserAgentInfo [browserName=" + browserName + ", browserVersion=" + browserVersion + ", osName="
+ osName + ", osVersion=" + osVersion + "]";
}
}
}
maven仓库的依赖
<!-- https://mvnrepository.com/artifact/cz.mallat.uasparser/uasparser -->
<dependency>
<groupId>cz.mallat.uasparser</groupId>
<artifactId>uasparser</artifactId>
<version>0.6.1</version>
</dependency>