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") }
};
}
}