【C#】获取机器码MachineCode

时间:2022-06-04 17:10:23
using System;
using System.Collections.Generic;
using System.Management;
using System.Text;

namespace WindowsFormsApplication1
{
public class MachineCode
{

static MachineCode machineCode;

public static string GetMachineCodeString()
{
string machineCodeString = string.Empty;
if (machineCode == null)
{
machineCode
= new MachineCode();
}
machineCodeString
= "PC." + machineCode.GetCpuInfo() + "." +
machineCode.GetHDid()
+ "." +
machineCode.GetMoAddress();
return machineCodeString;
}

/// <summary>
/// 获取cpu序列号
/// </summary>
/// <returns> string </returns>
public string GetCpuInfo()
{
string cpuInfo = "";
try
{
using (ManagementClass cimobject = new ManagementClass("Win32_Processor"))
{
ManagementObjectCollection moc
= cimobject.GetInstances();

foreach (ManagementObject mo in moc)
{
cpuInfo
= mo.Properties["ProcessorId"].Value.ToString();
mo.Dispose();
}
}
}
catch (Exception)
{
throw;
}
return cpuInfo.ToString();
}

/// <summary>
/// 获取硬盘ID
/// </summary>
/// <returns> string </returns>
public string GetHDid()
{
string HDid = "";
try
{
using (ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"))
{
ManagementObjectCollection moc1
= cimobject1.GetInstances();
foreach (ManagementObject mo in moc1)
{
HDid
= (string)mo.Properties["Model"].Value;
mo.Dispose();
}
}
}
catch (Exception)
{

throw;
}
return HDid.ToString();
}

/// <summary>
/// 获取网卡硬件地址
/// </summary>
/// <returns> string </returns>
public string GetMoAddress()
{
string MoAddress = "";
try
{
using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
{
ManagementObjectCollection moc2
= mc.GetInstances();
foreach (ManagementObject mo in moc2)
{
if ((bool)mo["IPEnabled"] == true)
MoAddress
= mo["MacAddress"].ToString();
mo.Dispose();
}
}
}
catch (Exception)
{
throw;
}
return MoAddress.ToString();
}
}
}