using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; public class SystemInfoHelper { /// /// 获取计算机用户名 /// public static string GetComputerUserName() { return Environment.UserName; } /// /// 获取计算机名 /// public static string GetComputerName() { return Environment.MachineName; } /// /// 获取所有MAC地址 /// public static List GetAllMacAddresses() { List macAddresses = new List(); try { NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface ni in interfaces) { if (ni.OperationalStatus == OperationalStatus.Up && ni.NetworkInterfaceType != NetworkInterfaceType.Loopback) { PhysicalAddress address = ni.GetPhysicalAddress(); if (address != null && address.ToString().Length > 0) { string mac = FormatMacAddress(address.ToString()); macAddresses.Add(mac); } } } } catch (Exception ex) { Console.WriteLine("获取MAC地址错误: " + ex.Message); } return macAddresses; } /// /// 获取第一个可用的MAC地址 /// public static string GetFirstMacAddress() { var macAddresses = GetAllMacAddresses(); return macAddresses.Count > 0 ? macAddresses[0] : string.Empty; } /// /// 获取所有IP地址(IPv4) /// public static List GetAllIPAddresses() { List ipAddresses = new List(); try { string hostName = Dns.GetHostName(); IPAddress[] addresses = Dns.GetHostAddresses(hostName); foreach (IPAddress address in addresses) { if (address.AddressFamily == AddressFamily.InterNetwork) // IPv4 { ipAddresses.Add(address.ToString()); } } } catch (Exception ex) { Console.WriteLine("获取IP地址错误: " + ex.Message); } return ipAddresses; } /// /// 获取本地IP地址(排除127.0.0.1) /// public static string GetLocalIPAddress() { var ipAddresses = GetAllIPAddresses(); foreach (string ip in ipAddresses) { if (ip != "127.0.0.1" && !ip.StartsWith("169.254.") && !ip.StartsWith("192.168.")) // 排除回环和APIPA地址 { return ip; } } return ipAddresses.Count > 0 ? ipAddresses[0] : string.Empty; } /// /// 格式化MAC地址(添加-分隔符) /// private static string FormatMacAddress(string mac) { if (string.IsNullOrEmpty(mac) || mac.Length != 12) return mac; // 将 "001122AABBCC" 格式化为 "00-11-22-AA-BB-CC" return string.Format("{0}-{1}-{2}-{3}-{4}-{5}", mac.Substring(0, 2), mac.Substring(2, 2), mac.Substring(4, 2), mac.Substring(6, 2), mac.Substring(8, 2), mac.Substring(10, 2)); } /// /// 获取所有系统信息 /// public static Dictionary GetAllSystemInfo() { return new Dictionary { { "UserName", GetComputerUserName() }, { "ComputerName", GetComputerName() }, { "MACAddresses", GetAllMacAddresses() }, { "FirstMACAddress", GetFirstMacAddress() }, { "IPAddresses", GetAllIPAddresses() }, { "LocalIPAddress", GetLocalIPAddress() }, { "OSVersion", Environment.OSVersion.ToString() }, { "SystemDirectory", Environment.SystemDirectory }, { "ProcessorCount", Environment.ProcessorCount }, { "CurrentTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") } }; } }