Java(android)通过请求头(User-Agent)获取浏览器类型,操作系统类型,手机机型

来源:互联网 发布:初中毕业可以学编程吗 编辑:程序博客网 时间:2024/06/06 00:03

声明:

1.User-Agent是可以伪造的

2.User-Agent中含有操作系统和版本信息

3.在CSDN看见几位的博客,感觉不是很完善,刚好项目上用到,引用几位兄弟的博客,自己进一步完善。


import javax.servlet.http.HttpServletRequest;import nl.bitwalker.useragentutils.Browser;import nl.bitwalker.useragentutils.OperatingSystem;import nl.bitwalker.useragentutils.UserAgent;public class UserAgentUtil {      public static String android="Android";      public static String iphone="iPhone";      public static String ipad="iPad";    public static String noDevice="未知设备";        //获取用户UA信息    public static String getUaInfo(HttpServletRequest request){        if(null == request) return "";    return request.getHeader("User-Agent");    }           //获取用户Browser信息    public static String getBrowser(String ua){        if(null == ua) return "";    UserAgent userAgent = UserAgent.parseUserAgentString(ua);    Browser browser = userAgent.getBrowser();    return browser.toString();    }        //获取用户os信息    public static String getOS(String ua){        if(null == ua) return noDevice;    UserAgent userAgent = UserAgent.parseUserAgentString(ua);    OperatingSystem os = userAgent.getOperatingSystem();    return os.toString();    }        //获取移动用户操作系统      public static String getMobileOS(String userAgent){          if (userAgent.contains(android)) {              return android;          }else if (userAgent.contains(iphone)){              return iphone;          }else if (userAgent.contains(ipad)){              return ipad;          }else {              return "others";        }      }          //获取用户手机型号      public static String getPhoneModel(String userAgent){        if(null == userAgent || "" == userAgent) return noDevice;            String OS=UserAgentUtil.getMobileOS(userAgent);           if (OS.equals(android)) {              String rex="[()]+";              String[] str=userAgent.split(rex);              str = str[1].split("[;]");              String[] res=str[str.length-1].split("Build/");              return res[0];          }else if (OS.equals(iphone)) {              String[] str=userAgent.split("[()]+");              String res="iphone"+str[1].split("OS")[1].split("like")[0];              return res;          }else if (OS.equals(ipad)) {              return ipad;          }else {              return getOS(userAgent);          }          }    }  


下载UserAgentUtils.jar


常见userAgent信息链接


引用文章

阅读全文
0 0