欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

2020-11-08

程序员文章站 2022-03-26 22:29:23
Java通过获取useragent来判断设备。源码以及依赖在学登录模块的时候经常会用到判断用户是什么设备,这时候我们可以使用一个工具类,我上学时用的,还是挺好用的,分享给大家。import cz.mallat.uasparser.OnlineUpdater;import cz.mallat.uasparser.UASparser;import cz.mallat.uasparser.UserAgentInfo;import java.io.IOException;/** * 本类实现了UA...

Java通过获取useragent来判断设备。源码以及依赖

在学登录模块的时候经常会用到判断用户是什么设备,这时候我们可以使用一个工具类,我上学时用的,还是挺好用的,分享给大家。

import cz.mallat.uasparser.OnlineUpdater;
import cz.mallat.uasparser.UASparser;
import cz.mallat.uasparser.UserAgentInfo;

import java.io.IOException;

/**
 * 本类实现了UASparser的单例,该实例可通过分析user-agent信息判断当前Http请求的客户端浏览器类型
 *
 * @author
 */
public class UserAgentUtil {

    private static UASparser uasParser = null;

    public static UASparser getUasParser() {
        if (uasParser == null) {
            try {
                uasParser = new UASparser(OnlineUpdater.getVendoredInputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return uasParser;
    }
	/*// 初始化uasParser对象
	static {
		try {
			uasParser = new UASparser(OnlineUpdater.getVendoredInputStream());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}*/

    /**
     * 是否移动设备
     *
     * @param agent
     * @return
     */
    public static boolean CheckAgent(String agent) {
        boolean flag = false;

        String[] keywords = {"Android", "iPhone", "iPod", "iPad",
                "Windows Phone", "MQQBrowser"};

        // 排除 Windows 桌面系统
        if (!agent.contains("Windows NT")
                || (agent.contains("Windows NT") && agent
                .contains("compatible; MSIE 9.0;"))) {
            // 排除 苹果桌面系统
            if (!agent.contains("Windows NT") && !agent.contains("Macintosh")) {
                for (String item : keywords) {
                    if (agent.contains(item)) {
                        flag = true;
                        break;
                    }
                }
            }
        }

        return flag;
    }

    public static void main(String[] args) {
        // String str =
        // "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36";
        // String
        // str="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36";
        //String str = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5";
        String str = "";
        System.out.println(str);
        try {
            UserAgentInfo userAgentInfo = UserAgentUtil.uasParser.parse(str);
            System.out.println("操作系统名称:" + userAgentInfo.getOsFamily());//
            System.out.println("操作系统:" + userAgentInfo.getOsName());//
            System.out.println("浏览器名称:" + userAgentInfo.getUaFamily());//
            System.out.println("浏览器版本:" + userAgentInfo.getBrowserVersionInfo());//
            System.out.println("设备类型:" + userAgentInfo.getDeviceType());
            System.out.println("浏览器:" + userAgentInfo.getUaName());
            System.out.println("类型:" + userAgentInfo.getType());

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

需要引用的依赖

<dependency>
		<groupId>cz.mallat.uasparser</groupId>
		<artifactId>uasparser</artifactId>
		<version>0.6.0</version>
</dependency>

本文地址:https://blog.csdn.net/m0_45232700/article/details/109565814

相关标签: useragent java