unity3d 获取cpu序列号,硬盘ID,网卡MAC地址等硬件可用于加密

首先在添加引用中选中System.Management

  1. using System.Management;
  2. using System.Management.Instrumentation;
  3. private void GetInfo() 

  4. string cpuInfo = "";//cpu序列号 
  5. ManagementClass cimobject = new ManagementClass("Win32_Processor"); 
  6. ManagementObjectCollection moc = cimobject.GetInstances(); 
  7. foreach(ManagementObject mo in moc) 

  8. cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); 
  9. Response.Write ("cpu序列号:"+cpuInfo.ToString ()); 

  10. //获取硬盘ID 
  11. String HDid; 
  12. ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"); 
  13. ManagementObjectCollection moc1 = cimobject1.GetInstances(); 
  14. foreach(ManagementObject mo in moc1) 

  15. HDid = (string)mo.Properties["Model"].Value; 
  16. Response.Write ("硬盘序列号:"+HDid.ToString ()); 



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


  18. ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
  19. ManagementObjectCollection moc2 = mc.GetInstances(); 
  20. foreach(ManagementObject mo in moc2) 

  21. if((bool)mo["IPEnabled"] == true) 
  22. Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString()); 
  23. mo.Dispose(); 

  24. }

  25. public static float GetCPUPersent()
  26. {
  27. float cpuload = 0;
  28. const string categoryname = "processor";
  29. const string countername = "% processor time";
  30. const string instancename = "_total";
  31. PerformanceCounter pc = new PerformanceCounter(categoryname, countername, instancename);
  32. int i = 10;
  33. while (i > 0)
  34. {
  35. Thread.Sleep(1000); // wait for 1 second 
  36. cpuload = pc.NextValue();
  37. if (cpuload > 0)
  38. {
  39. break;
  40. }
  41. i--;
  42. }
  43. return cpuload;
  44. }
  45. public static void GetDiskSpace(string path, out long DiskAll, out long DiskActive)
  46. {
  47. DiskAll = 0;
  48. DiskActive = 0;
  49. long a, b, c;
  50. int aaa = GetDiskFreeSpaceEx(path, out a, out b, out c);
  51. DiskAll = (long)(b / 1024 / 1024);
  52. DiskActive = (long)(a / 1024 / 1024);
  53. }
  54. public static void GetMemoryInfo(out uint MemoryAll, out uint MemoryUsed)
  55. {
  56. MemoryAll = 0;
  57. MemoryUsed = 0;
  58. MEMORY_INFO MemInfo = new MEMORY_INFO();
  59. GlobalMemoryStatus(ref MemInfo);
  60. MemoryAll = MemInfo.dwTotalPhys / 1024 / 1024;
  61. MemoryUsed = (MemInfo.dwTotalPhys - MemInfo.dwAvailPhys) / 1024 / 1024;
  62. }
复制代码
  1. [DllImport("kernel32")]
  2. public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
  3. //定义内存的信息结构 
  4. [StructLayout(LayoutKind.Sequential)]
  5. public struct MEMORY_INFO
  6. {
  7. public uint dwLength;
  8. public uint dwMemoryLoad;
  9. public uint dwTotalPhys;
  10. public uint dwAvailPhys;
  11. public uint dwTotalPageFile;
  12. public uint dwAvailPageFile;
  13. public uint dwTotalVirtual;
  14. public uint dwAvailVirtual;
  15. }
  16. [DllImport("kernel32.dll", EntryPoint = "GetDiskFreeSpaceExA")]
  17. public static extern int GetDiskFreeSpaceEx(string lpRootPathName, out long lpFreeBytesAvailable, out long lpTotalNumberOfBytes, out long lpTotalNumberOfFreeBytes);
复制代码




原文连接: http://cl314413.blog.163.com/blog/static/19050797620127302281752/
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个使用 .NET 语言(C#)编写的获取计算机硬件信息的类: ```csharp using System; using System.Management; public class HardwareInfo { public string GetCpuId() { string cpuId = ""; ManagementClass mc = new ManagementClass("win32_processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { cpuId = mo.Properties["processorID"].Value.ToString(); break; } return cpuId; } public string GetMotherboardId() { string motherboardId = ""; ManagementClass mc = new ManagementClass("Win32_BaseBoard"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { motherboardId = mo.Properties["SerialNumber"].Value.ToString(); break; } return motherboardId; } public string GetHardDiskId() { string hardDiskId = ""; ManagementClass mc = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { hardDiskId = (string)mo["SerialNumber"]; break; } return hardDiskId; } public string GetMACAddress() { string macAddress = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { macAddress = mo["MacAddress"].ToString(); break; } } return macAddress; } } ``` 使用方法: ```csharp HardwareInfo hwInfo = new HardwareInfo(); string cpuId = hwInfo.GetCpuId(); string motherboardId = hwInfo.GetMotherboardId(); string hardDiskId = hwInfo.GetHardDiskId(); string macAddress = hwInfo.GetMACAddress(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值