package item_day2;
import cz.mallat.uasparser.OnlineUpdater;
import cz.mallat.uasparser.UASparser;
import cz.mallat.uasparser.UserAgentInfo;
import java.io.IOException;
//解析浏览器的useragent的工具类,内部就是调用这个uasparser jar文件
//3、UserAgent的解析
// UserAgentUtil工具类解析浏览器代理对象
// 包含内部类AgentInfo用于封装浏览器信息
// AgentInfo包括浏览器名称,浏览器版本,操作系统名称,操作系统版本4个属性
// UserAgentUtil包含方法 public static AgentInfo parserUserAgent(String userAgent)
// 返回值为AgentInfo的一个对象。
// 数据中b_iev的内容为浏览器代理对象,可以解析出浏览器信息,
// 包括浏览器名称,浏览器版本,操作系统名称,操作系统版本
// 使用uasparser-0.6.1.jar解析浏览器信息
// import cz.mallat.uasparser.OnlineUpdater;
// import cz.mallat.uasparser.UASparser;
// import cz.mallat.uasparser.UserAgentInfo;
public class Test2 {
public static void main(String[] args) throws IOException {
System.out.println(UserAgentUtil.parseUserAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36"));
}
}
class UserAgentUtil{
static class AgentInfo{
String browserName;//浏览器名称
String browserVersion;//浏览器版本
String osName;//操作系统名称
String osVersion;//操作系统版本
AgentInfo(String browserName,String browserVersion,String osName,String osVersion){
this.browserName=browserName;
this.browserVersion=browserVersion;
this.osName=osName;
this.osVersion=osVersion;
}
@Override
public String toString() {
return browserName+" "+browserVersion+" "+osName+" "+osVersion;
}
}
static UASparser uaSparser=null;
static {
try {
uaSparser = new UASparser(OnlineUpdater.getVendoredInputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public static AgentInfo parseUserAgent(String userAgent) throws IOException {
AgentInfo result=null;
//此时userAgent不为null,而且不是全部空格组成的
if(!(userAgent==null || userAgent.trim().isEmpty()))
{
UserAgentInfo info=null;
info=uaSparser.parse(userAgent);
result=new AgentInfo(info.getUaFamily(),info.getBrowserVersionInfo(),info.getOsFamily(),info.getOsName());
}
return result;
}
}
UserAgent的解析
最新推荐文章于 2024-05-27 09:52:23 发布