From 48c1de18235020edff108339ed1d12bade8a2b90 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期一, 08 十二月 2025 16:37:02 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/system/entity/license/WindowsServerInfos.java |   85 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/system/entity/license/WindowsServerInfos.java b/src/main/java/com/zy/system/entity/license/WindowsServerInfos.java
new file mode 100644
index 0000000..c575e6d
--- /dev/null
+++ b/src/main/java/com/zy/system/entity/license/WindowsServerInfos.java
@@ -0,0 +1,85 @@
+package com.zy.system.entity.license;
+
+import java.net.InetAddress;
+import java.util.List;
+import java.util.Scanner;
+import java.util.stream.Collectors;
+
+/**
+ * 鐢ㄤ簬鑾峰彇瀹㈡埛Windows鏈嶅姟鍣ㄧ殑鍩烘湰淇℃伅
+ */
+public class WindowsServerInfos extends AbstractServerInfos {
+
+    @Override
+    protected List<String> getIpAddress() throws Exception {
+        List<String> result = null;
+
+        //鑾峰彇鎵�鏈夌綉缁滄帴鍙�
+        List<InetAddress> inetAddresses = getLocalAllInetAddress();
+
+        if(inetAddresses != null && inetAddresses.size() > 0){
+            result = inetAddresses.stream().map(InetAddress::getHostAddress).distinct().map(String::toLowerCase).collect(Collectors.toList());
+        }
+
+        return result;
+    }
+
+    @Override
+    protected List<String> getMacAddress() throws Exception {
+        List<String> result = null;
+
+        //1. 鑾峰彇鎵�鏈夌綉缁滄帴鍙�
+        List<InetAddress> inetAddresses = getLocalAllInetAddress();
+
+        if(inetAddresses != null && inetAddresses.size() > 0){
+            //2. 鑾峰彇鎵�鏈夌綉缁滄帴鍙g殑Mac鍦板潃
+            result = inetAddresses.stream().map(this::getMacByInetAddress).distinct().collect(Collectors.toList());
+        }
+
+        return result;
+    }
+
+    @Override
+    protected String getCPUSerial() throws Exception {
+        //搴忓垪鍙�
+        String serialNumber = "";
+
+        //浣跨敤WMIC鑾峰彇CPU搴忓垪鍙�
+        Process process = Runtime.getRuntime().exec("wmic cpu get processorid");
+        process.getOutputStream().close();
+        Scanner scanner = new Scanner(process.getInputStream());
+
+        if(scanner.hasNext()){
+            scanner.next();
+        }
+
+        if(scanner.hasNext()){
+            serialNumber = scanner.next().trim();
+        }
+
+        scanner.close();
+        return serialNumber;
+    }
+
+    @Override
+    protected String getMainBoardSerial() throws Exception {
+        //搴忓垪鍙�
+        String serialNumber = "";
+
+        //浣跨敤WMIC鑾峰彇涓绘澘搴忓垪鍙�
+        Process process = Runtime.getRuntime().exec("wmic baseboard get serialnumber");
+        process.getOutputStream().close();
+        Scanner scanner = new Scanner(process.getInputStream());
+
+        if(scanner.hasNext()){
+            scanner.next();
+        }
+
+        if(scanner.hasNext()){
+            serialNumber = scanner.next().trim();
+        }
+
+        scanner.close();
+        return serialNumber;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1