Nelze vybrat více než 25 témat
Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
|
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Management;
- using System.Net.NetworkInformation;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace CnasSynchronousCommon
- {
- public class MachieCodeHelper
- {
- public static string GetMachineCode()
- {
- StringBuilder machineCode = new StringBuilder();
-
- // 获取CPU ID
- string cpuId = GetCPUId();
- machineCode.Append(cpuId);
-
- // 获取所有MAC地址
- List<string> macAddresses = GetMACAddresses();
- foreach (string mac in macAddresses)
- {
- machineCode.Append("_").Append(mac);
- }
-
- return machineCode.ToString();
- }
-
- private static string GetCPUId()
- {
- try
- {
- using (ManagementClass mc = new ManagementClass("Win32_Processor"))
- {
- ManagementObjectCollection moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- return mo.Properties["ProcessorId"].Value.ToString();
- }
- }
- }
- catch (Exception ex)
- {
- throw new Exception("获取CPU ID失败: " + ex.Message);
- }
- return string.Empty;
- }
-
- private static List<string> GetMACAddresses()
- {
- List<string> macAddresses = new List<string>();
- try
- {
- NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
- // 优先选择以太网卡
- var ethernetAdapter = nics.FirstOrDefault(adapter =>
- adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet &&
- !string.IsNullOrEmpty(adapter.GetPhysicalAddress().ToString()));
-
- // 如果没有以太网卡,则选择无线网卡
- var selectedAdapter = ethernetAdapter ?? nics.FirstOrDefault(adapter =>
- adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 &&
- !string.IsNullOrEmpty(adapter.GetPhysicalAddress().ToString()));
-
- if (selectedAdapter != null)
- {
- string mac = selectedAdapter.GetPhysicalAddress().ToString();
- if (!string.IsNullOrEmpty(mac))
- {
- macAddresses.Add(mac);
- }
- }
- }
- catch (Exception ex)
- {
- throw new Exception("获取MAC地址失败: " + ex.Message);
- }
- return macAddresses;
- }
- }
- }
|