package com.doumee.core.utils; 
 | 
  
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
  
 | 
import javax.servlet.http.HttpServletRequest; 
 | 
  
 | 
/** 
 | 
 * 请求工具类 
 | 
 * @author Eva.Caesar Liu 
 | 
 * @date 2022/03/15 09:54 
 | 
 */ 
 | 
public class UserClient { 
 | 
  
 | 
    /** 
 | 
     * 获取系统信息 
 | 
     * @param request 请求对象 
 | 
     * 
 | 
     * @return String 
 | 
     */ 
 | 
    public String getOS(HttpServletRequest request) { 
 | 
        String browserDetails = request.getHeader("User-Agent"); 
 | 
        String userAgent = browserDetails.toLowerCase(); 
 | 
        String os; 
 | 
        if (userAgent.indexOf("windows") >= 0) { 
 | 
            os = "Windows"; 
 | 
        } else if (userAgent.indexOf("mac") >= 0) { 
 | 
            os = "Mac"; 
 | 
        } else if (userAgent.indexOf("x11") >= 0) { 
 | 
            os = "Unix"; 
 | 
        } else if (userAgent.indexOf("android") >= 0) { 
 | 
            os = "Android"; 
 | 
        } else if (userAgent.indexOf("iphone") >= 0) { 
 | 
            os = "IPhone"; 
 | 
        } else { 
 | 
            os = "UnKnown, More-Info: " + userAgent; 
 | 
        } 
 | 
        return os; 
 | 
  
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取客户端信息 
 | 
     * @param request 请求对象 
 | 
     * 
 | 
     * @return String 
 | 
     */ 
 | 
    public String getBrowser(HttpServletRequest request) { 
 | 
        String browserDetails = request.getHeader("User-Agent"); 
 | 
        String userAgent = browserDetails; 
 | 
        String user = userAgent.toLowerCase(); 
 | 
  
 | 
        String browser = ""; 
 | 
  
 | 
        if (user.contains("edge")) { 
 | 
            browser = (userAgent.substring(userAgent.indexOf("Edge")).split(" ")[0]).replace("/", "-"); 
 | 
        } else if (user.contains("msie")) { 
 | 
            String substring = userAgent.substring(userAgent.indexOf("MSIE")).split(";")[0]; 
 | 
            browser = substring.split(" ")[0].replace("MSIE", "IE") + "-" + substring.split(" ")[1]; 
 | 
        } else if (user.contains("safari") && user.contains("version")) { 
 | 
            browser = (userAgent.substring(userAgent.indexOf("Safari")).split(" ")[0]).split("/")[0] + "-" 
 | 
                    + (userAgent.substring(userAgent.indexOf("Version")).split(" ")[0]).split("/")[1]; 
 | 
        } else if (user.contains("opr") || user.contains("opera")) { 
 | 
            if (user.contains("opera")) { 
 | 
                browser = (userAgent.substring(userAgent.indexOf("Opera")).split(" ")[0]).split("/")[0] + "-" 
 | 
                        + (userAgent.substring(userAgent.indexOf("Version")).split(" ")[0]).split("/")[1]; 
 | 
            } else if (user.contains("opr")) { 
 | 
                browser = ((userAgent.substring(userAgent.indexOf("OPR")).split(" ")[0]).replace("/", "-")) 
 | 
                        .replace("OPR", "Opera"); 
 | 
            } 
 | 
  
 | 
        } else if (user.contains("chrome")) { 
 | 
            browser = (userAgent.substring(userAgent.indexOf("Chrome")).split(" ")[0]).replace("/", "-"); 
 | 
        } else if ((user.indexOf("mozilla/7.0") > -1) || (user.indexOf("netscape6") != -1) 
 | 
                || (user.indexOf("mozilla/4.7") != -1) || (user.indexOf("mozilla/4.78") != -1) 
 | 
                || (user.indexOf("mozilla/4.08") != -1) || (user.indexOf("mozilla/3") != -1)) { 
 | 
            browser = "Netscape-?"; 
 | 
  
 | 
        } else if (user.contains("firefox")) { 
 | 
            browser = (userAgent.substring(userAgent.indexOf("Firefox")).split(" ")[0]).replace("/", "-"); 
 | 
        } else if (user.contains("rv")) { 
 | 
            String IEVersion = (userAgent.substring(userAgent.indexOf("rv")).split(" ")[0]).replace("rv:", "-"); 
 | 
            browser = "IE" + IEVersion.substring(0, IEVersion.length() - 1); 
 | 
        } else { 
 | 
            browser = "UnKnown, More-Info: " + userAgent; 
 | 
        } 
 | 
  
 | 
        return browser; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取IP 
 | 
     * @param request 请求对象 
 | 
     * 
 | 
     * @return String 
 | 
     */ 
 | 
    public String getIP(HttpServletRequest request){ 
 | 
        String ip = request.getHeader("x-forwarded-for"); 
 | 
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ 
 | 
            ip = request.getHeader("Proxy-Client-IP"); 
 | 
        } 
 | 
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ 
 | 
            ip = request.getHeader("WL-Proxy-Client-IP"); 
 | 
        } 
 | 
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ 
 | 
            ip = request.getRemoteAddr(); 
 | 
        } 
 | 
        if(!StringUtils.isBlank(ip)) { 
 | 
            if(ip.contains(",")) { 
 | 
                return ip.split(",")[0].trim(); 
 | 
            } else { 
 | 
                return ip.trim(); 
 | 
            } 
 | 
        } 
 | 
        return "-1.-1.-1.-1"; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取用户操作平台 
 | 
     * @param request 请求对象 
 | 
     * 
 | 
     * @return String 
 | 
     */ 
 | 
    public String getPlatform (HttpServletRequest request) { 
 | 
        return request.getHeader("eva-platform") == null ? "UNKNOWN" : request.getHeader("eva-platform"); 
 | 
    } 
 | 
} 
 |