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

声明:

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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值