浏览解析工具cz解析数据的浏览器 浏览器版本号 操作系统 操作系统版本

版权声明:有一种生活不去经历不知其中艰辛,有一种艰辛不去体会,不会知道其中快乐,有一种快乐,没有拥有不知其中纯粹 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>

猜你喜欢

转载自blog.csdn.net/wwwzydcom/article/details/84349661