From 12e8eb9e345adea19972c34df471b28b51fa71dd Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期二, 21 五月 2024 15:34:11 +0800 Subject: [PATCH] 代码初始化 --- server/system_service/src/main/java/com/doumee/core/utils/UserClient.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 99 insertions(+), 0 deletions(-) diff --git a/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java b/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java index 0e19c20..91d6726 100644 --- a/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java +++ b/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java @@ -1,6 +1,8 @@ package com.doumee.core.utils; import org.apache.commons.lang3.StringUtils; +import org.springframework.http.HttpHeaders; +import org.springframework.http.server.reactive.ServerHttpRequest; import javax.servlet.http.HttpServletRequest; @@ -19,6 +21,26 @@ */ 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; + + } + public String getOS(ServerHttpRequest request) { + String browserDetails = request.getHeaders().getFirst("User-Agent"); String userAgent = browserDetails.toLowerCase(); String os; if (userAgent.indexOf("windows") >= 0) { @@ -86,6 +108,48 @@ return browser; } + public String getBrowser(ServerHttpRequest request) { + String browserDetails = request.getHeaders().getFirst("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 @@ -113,6 +177,36 @@ } return "-1.-1.-1.-1"; } + public String getIP(ServerHttpRequest request){ + HttpHeaders headers = request.getHeaders(); + String ip = headers.getFirst("x-forwarded-for"); + if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { + // 澶氭鍙嶅悜浠g悊鍚庝細鏈夊涓猧p鍊硷紝绗竴涓猧p鎵嶆槸鐪熷疄ip + if (ip.indexOf(",") != -1) { + ip = ip.split(",")[0]; + } + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("HTTP_X_FORWARDED_FOR"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("X-Real-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddress().getAddress().getHostAddress(); + } + + return ip.replaceAll(":", "."); + } /** * 鑾峰彇鐢ㄦ埛鎿嶄綔骞冲彴 @@ -123,4 +217,9 @@ public String getPlatform (HttpServletRequest request) { return request.getHeader("eva-platform") == null ? "UNKNOWN" : request.getHeader("eva-platform"); } + public String getPlatform (ServerHttpRequest request) { + HttpHeaders headers = request.getHeaders(); + String name = headers.getFirst("eva-platform"); + return name==null ? "UNKNOWN" : name; + } } -- Gitblit v1.9.3