C# 中获取CPU序列号/网卡mac地址

1.cpu序列号2.mac序列号3.硬盘id

在给软件加序列号时这三个应该是最有用的,可以实现序列号和机器绑定,对保护软件很有好处.哈哈.

using System;

using System.Management;

/// Computer Information

public class Computer

{

public string CpuID; //1.cpu序列号

public string MacAddress; //2.mac序列号

public string DiskID; //3.硬盘id

public string IpAddress; //4.ip地址

public string LoginUserName; //5.登录用户名

public string ComputerName; //6.计算机名

public string SystemType; //7.系统类型

public string TotalPhysicalMemory; //8.内存量 单位:M



public Computer()

{

CpuID = GetCpuID();

MacAddress = GetMacAddress();

DiskID = GetDiskID();

IpAddress = GetIPAddress();

LoginUserName = GetUserName();

SystemType = GetSystemType();

TotalPhysicalMemory = GetTotalPhysicalMemory();

ComputerName = GetComputerName();

}

//1.获取CPU序列号代码

string GetCpuID()

{

try

{

string cpuInfo = "";//cpu序列号

ManagementClass mc = new ManagementClass("Win32_Processor");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

cpuInfo = mo.Properties["ProcessorId"].Value.ToString();

}

moc = null;

mc = null;

return cpuInfo;

}

catch

{

return "unknow";

}

finally

{

}

}

//2.获取网卡硬件地址

string GetMacAddress()

{

try

{

string mac = "";

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

if ((bool)mo["IPEnabled"] == true)

{

mac = mo["MacAddress"].ToString();

break;

}

}

moc = null;

mc = null;

return mac;

}

catch

{

return "unknow";

}

finally

{

}

}

//3.获取硬盘ID

string GetDiskID()

{

try

{

String HDid = "";

ManagementClass mc = new ManagementClass("Win32_DiskDrive");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

HDid = (string)mo.Properties["Model"].Value;

}

moc = null;

mc = null;

return HDid;

}

catch

{

return "unknow";

}

finally

{

}

}

//4.获取IP地址

string GetIPAddress()

{

try

{

string st = "";

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

if ((bool)mo["IPEnabled"] == true)

{

//st=mo["IpAddress"].ToString();

System.Array ar;

ar = (System.Array)(mo.Properties["IpAddress"].Value);

st = ar.GetValue(0).ToString();

break;

}

}

moc = null;

mc = null;

return st;

}

catch

{

return "unknow";

}

finally

{

}

}

/// 5.操作系统的登录用户名

string GetUserName()

{

try

{

string un= "";

st = Environment.UserName;

return un;

}

catch

{

return "unknow";

}

finally

{

}

}

//6.获取计算机名

string GetComputerName()

{

try

{

return System.Environment.MachineName;

}

catch

{

return "unknow";

}

finally

{

}

}

///7 PC类型

string GetSystemType()

{

try

{

string st = "";

ManagementClass mc = new ManagementClass("Win32_ComputerSystem");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

st = mo["SystemType"].ToString();

}

moc = null;

mc = null;

return st;

}

catch

{

return "unknow";

}

finally

{

}

}

catch

{

return "unknow";

}

finally

{

}

}

/// 8.物理内存

string GetTotalPhysicalMemory()

{

try

{

string st = "";

ManagementClass mc = new ManagementClass("Win32_ComputerSystem");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

st = mo["TotalPhysicalMemory"].ToString();

}

moc = null;

mc = null;

return st;

}

}