|
- using Newtonsoft.Json;
- using System.Management;
-
- namespace SafeCampus.Core.Utils.Machine;
-
- public class MachineUtil : IMachineUtil
- {
- private readonly ISimpleCacheService _simpleCacheService;
-
- public MachineUtil(ISimpleCacheService simpleCacheService)
- {
- _simpleCacheService = simpleCacheService;
- }
-
- /// <summary>
- /// CPU码
- /// </summary>
- /// <returns></returns>
- public async Task<string> GetProcessorId()
- {
- var json = _simpleCacheService.Get<string>(BizConfigConst.BIZ_MACHINE_CPU);
- if (json != null) return json;
- using ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor");
- ManagementObjectCollection collection = searcher.Get();
- string processorId = collection.Cast<ManagementBaseObject>().First()["ProcessorId"].ToString();
- _simpleCacheService.Add(BizConfigConst.BIZ_MACHINE_CPU, processorId);
- return processorId;
-
- }
- /// <summary>
- /// 硬盘码
- /// </summary>
- /// <returns></returns>
- public async Task<string> GetDiskId()
- {
- var json = _simpleCacheService.Get<string>(BizConfigConst.BIZ_MACHINE_DISK);
- if (json != null) return json;
- using ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_DiskDrive");
- ManagementObjectCollection collection = searcher.Get();
- string diskId = collection.Cast<ManagementBaseObject>().First()["SerialNumber"].ToString();
- _simpleCacheService.Add(BizConfigConst.BIZ_MACHINE_DISK, diskId);
- return diskId;
- }
- /// <summary>
- /// MAC地址
- /// </summary>
- /// <returns></returns>
- public async Task<string> GetMacAddress()
- {
- var json = _simpleCacheService.Get<string>(BizConfigConst.BIZ_MACHINE_MAC);
- if (json != null) return json;
- using ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT MACAddress FROM Win32_NetworkAdapter WHERE PhysicalAdapter=True");
- ManagementObjectCollection collection = searcher.Get();
- string macAddress = collection.Cast<ManagementBaseObject>().First()["MACAddress"].ToString();
- _simpleCacheService.Add(BizConfigConst.BIZ_MACHINE_MAC, macAddress);
- return macAddress;
- }
- }
|