根据UA获取用户访问操作系统、浏览器名

功能需求

       统计用户通过何种浏览器访问系统、统计访问用户的操作系统。

依赖jar包
 <!-- https://mvnrepository.com/artifact/eu.bitwalker/UserAgentUtils -->
<dependency>
    <groupId>eu.bitwalker</groupId>
    <artifactId>UserAgentUtils</artifactId>
    <version>1.21</version>
</dependency>

实现代码
       
import eu.bitwalker.useragentutils.Browser;
import eu.bitwalker.useragentutils.OperatingSystem;
import eu.bitwalker.useragentutils.UserAgent;
import org.apache.http.HttpException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

/**
 * 〈一句话功能简述〉<br>
 * 〈根据请求获取访问操作系统、浏览器信息〉
 *
 * @author Administrator
 * @create 2019-02-19
 * @since 1.0.0
 */
public class BrowserStatisticsUtil {
    public static Logger logger = LoggerFactory.getLogger(BrowserStatisticsUtil.class);

    public Map getBrowser(HttpServletRequest request) throws HttpException {
        Map<String, String> map = new HashMap<String, String>();
        String agent = request.getHeader("User-Agent");
        UserAgent userAgentUtils = UserAgentUtils.getUserAgent(request);
        userAgentUtils.getBrowser().getId();
        userAgentUtils.getBrowserVersion();
        userAgentUtils.getOperatingSystem();
        userAgentUtils.getBrowser().getBrowserType();

        //解析agent字符串
        UserAgent userAgent = UserAgent.parseUserAgentString(agent);
        //获取浏览器对象
        Browser browser = userAgent.getBrowser();
        //获取操作系统对象
        OperatingSystem operatingSystem = userAgent.getOperatingSystem();

        System.out.println("浏览器名:" + browser.getName());
        System.out.println("浏览器id:" + browser.getId());

        System.out.println("操作系统名:" + operatingSystem.getName());
        map.put("browser", browser.getName());
        map.put("operatingSystem", operatingSystem.getName());
        return map;
    }

    /**
     * 匹配浏览器类型
     *
     * @param agent
     * @return
     */
    public Integer[] getBrowserAndSystem(String agent) {
             /*
           1:谷歌浏览器
           2:火狐浏览器
           3:QQ浏览器
           4:360浏览器
           5:IE浏览器
           6:其他浏览器
           1: Android
           2: Windows
           3: IOS
           4: MAC OS
           5: 其他
         */
        Integer browser_obj = null;
        Integer system_ibj = null;
        Integer[] temp = new Integer[2];
        //浏览器匹配
        logger.info("agent参数为:"+agent);
        if (agent.indexOf("qqbrowser") > -1) {
            logger.info("QQ浏览器匹配成功&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
            temp[0] = 3;
        }
        else if (agent.indexOf("chrome") > -1) {
            logger.info("谷歌匹配成功&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
            temp[0] = 1;
        }
        else if (agent.indexOf("trident") > -1) {
            logger.info("IE匹配成功&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
            temp[0] = 5;
        }
        else if (agent.indexOf("firefox") > -1) {
            logger.info("火狐匹配成功&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
            temp[0] = 2;
        }
        else {
            logger.info("其他浏览器&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
            temp[0] = 4;
        }
        //操作系统匹配
        if (agent.indexOf("android") > -1) {
            temp[1] = 1;
            logger.info("匹配Android系统成功---------------------------");
        }
        else if (agent.indexOf("windows") > -1) {
            temp[1] = 2;
            logger.info("匹配Windows系统成功---------------------------");
        }
        else if (agent.indexOf("mac os") > -1) {
            if (agent.indexOf("iphone os") > -1) {
                temp[1] = 4;
                logger.info("匹配ISO系统成功---------------------------");
            }
            else {
                temp[1] = 3;
                logger.info("匹配MAC OS系统成功---------------------------");
            }
        }
        else {
            temp[1] = 5;
            logger.info("所有匹配失败,未知系统");
        }

        return temp;
    }

如何调用
	 public static void main(String[] args) {
	 
       //如果是通过http网络请求的话,应该这样写:
       //String agent = request.getHeader("user-agent");

        String agent = "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.32 Safari/537.36";

        //解析agent字符串
        UserAgent userAgent = UserAgent.parseUserAgentString(agent);
        //获取浏览器对象
        Browser browser = userAgent.getBrowser();
        //获取操作系统对象
        OperatingSystem operatingSystem = userAgent.getOperatingSystem();

        System.out.println("浏览器id:" + browser.getId());
        System.out.println("操作系统:" + operatingSystem.getName());
        System.out.println("浏览器名:" + browser.getName());
    }
效果图

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值