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