com.nxyfan.framework.common.util.CommonUaUtil Maven / Gradle / Ivy
package com.nxyfan.framework.common.util;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.ServletUtil;
import cn.hutool.http.useragent.Browser;
import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil;
import javax.servlet.http.HttpServletRequest;
/**
* 用户代理工具类
*
* @author amour
* @date 2022/9/2 15:34
*/
public class CommonUaUtil {
/**
* 获取客户端浏览器
*
* @author amour
* @date 2020/3/19 14:53
*/
public static String getBrowser(HttpServletRequest request) {
UserAgent userAgent = getUserAgent(request);
if (ObjectUtil.isEmpty(userAgent)) {
return StrUtil.DASHED;
} else {
String browser = userAgent.getBrowser().toString();
return "Unknown".equals(browser) ? StrUtil.DASHED : browser;
}
}
/**
* 获取客户端操作系统
*
* @author amour
* @date 2022/9/2 15:36
*/
public static String getOs(HttpServletRequest request) {
UserAgent userAgent = getUserAgent(request);
if (ObjectUtil.isEmpty(userAgent)) {
return StrUtil.DASHED;
} else {
String os = userAgent.getOs().toString();
return "Unknown".equals(os) ? StrUtil.DASHED : os;
}
}
/**
* 获取请求代理头
*
* @author amour
* @date 2022/9/2 15:36
*/
private static UserAgent getUserAgent(HttpServletRequest request) {
String userAgentStr = ServletUtil.getHeaderIgnoreCase(request, "User-Agent");
UserAgent userAgent = UserAgentUtil.parse(userAgentStr);
if (ObjectUtil.isNotEmpty(userAgentStr)) {
if ("Unknown".equals(userAgent.getBrowser().getName())) {
userAgent.setBrowser(new Browser(userAgentStr, null, ""));
}
}
return userAgent;
}
}