/// <summary>
/// 取得设备硬盘的卷标号
/// </summary>
/// <returns></returns>
public static string GetDiskVolumeSerialNumber(){ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");disk.Get();return disk.GetPropertyValue("VolumeSerialNumber").ToString();}/// <summary>
/// 获得CPU的序列号
/// </summary>
/// <returns></returns>
public static string getCpu(){string strCpu = null;ManagementClass myCpu = new ManagementClass("win32_Processor");ManagementObjectCollection myCpuConnection = myCpu.GetInstances();foreach (ManagementObject myObject in myCpuConnection){strCpu = myObject.Properties["Processorid"].Value.ToString();break;}return strCpu;
}

然后再组合生成机器码:

        /// <summary>/// 生成机器码/// </summary>/// <returns></returns>public static string getMNum(){string strNum = getCpu() + GetDiskVolumeSerialNumber();//获得24位Cpu和硬盘序列号string strMNum = strNum.Substring(0, 24);//从生成的字符串中取出前24个字符做为机器码return strMNum;}public int[] intCode = new int[127];//存储密钥public int[] intNumber = new int[25];//存机器码的Ascii值public char[] Charcode = new char[25];//存储机器码字public void setIntCode()//给数组赋值小于10的数{for (int i = 1; i < intCode.Length; i++){intCode[i] = i % 9;}}

生成注册码等:

        /// <summary>/// 生成注册码/// </summary>/// <returns></returns>public string getRNum(){setIntCode();//初始化127位数组string MNum = getMNum();//获取注册码for (int i = 1; i < Charcode.Length; i++)//把机器码存入数组中{Charcode[i] = Convert.ToChar(MNum.Substring(i - 1, 1));}for (int j = 1; j < intNumber.Length; j++)//把字符的ASCII值存入一个整数组中。{intNumber[j] = intCode[Convert.ToInt32(Charcode[j])] + Convert.ToInt32(Charcode[j]);}string strAsciiName = "";//用于存储注册码for (int j = 1; j < intNumber.Length; j++){if (intNumber[j] >= 48 && intNumber[j] <= 57)//判断字符ASCII值是否0-9之间{strAsciiName += Convert.ToChar(intNumber[j]).ToString();}else if (intNumber[j] >= 65 && intNumber[j] <= 90)//判断字符ASCII值是否A-Z之间{strAsciiName += Convert.ToChar(intNumber[j]).ToString();}else if (intNumber[j] >= 97 && intNumber[j] <= 122)//判断字符ASCII值是否a-z之间{strAsciiName += Convert.ToChar(intNumber[j]).ToString();}else//判断字符ASCII值不在以上范围内{if (intNumber[j] > 122)//判断字符ASCII值是否大于z{strAsciiName += Convert.ToChar(intNumber[j] - 10).ToString();}else{strAsciiName += Convert.ToChar(intNumber[j] - 9).ToString();}}}return strAsciiName;//返回注册码}public static string GetNetCardMACAddress(){try{ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");string NetCardMACAddress = "";foreach (ManagementObject mo in searcher.Get()){NetCardMACAddress = mo["MACAddress"].ToString().Trim();}return NetCardMACAddress;}catch{return "";}}

C#读取计算机的机器码、网卡、设备码相关推荐

  1. 隐藏在计算机网卡怎样删除,如何卸载电脑中隐藏的虚拟网卡设备

    虚拟网卡主要是建立远程计算机间的局域网,在此虚拟的局域网上能进行所有物理存在的局域网的操作,可以互相访问,可以联网玩游戏.当需要卸载电脑系统中的虚拟网卡时,在设备管理器中无法查看到虚拟网卡设备,那么怎 ...

  2. java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档 本源码技 ...

  3. 计算机毕业设计ssm特种设备全生命周期管理系统8b729系统+程序+源码+lw+远程部署

    计算机毕业设计ssm特种设备全生命周期管理系统8b729系统+程序+源码+lw+远程部署 计算机毕业设计ssm特种设备全生命周期管理系统8b729系统+程序+源码+lw+远程部署 本源码技术栈: 项目 ...

  4. 计算机毕业设计Java中小企业设备管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java中小企业设备管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java中小企业设备管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B ...

  5. Linux下Rtl8139too网卡设备驱动程序关键函数剖析

    static int __devinit rtl8139_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) 函数功能描述 ...

  6. 设备唯一标识/设备码/设备标识码

    文章目录 一.MAC地址 二.IMEI 三.MEID MEID 和 IMEI 用途的区别 四.序列号 (一)苹果手机序列号 (二)华为手机序列号 一.MAC地址 MAC地址(英语:Media Acce ...

  7. 机器码与字节码的区别

    1.机器码 是电脑CPU直接读取运行的机器码,运行速度最快,但是非常晦涩难懂,同时也比较难编写:机器码就是计算机可以直接执行,并且执行速度最快的代码: 用机器语言编写程序,编程人员要首先熟记所用计算机 ...

  8. linux 虚拟网卡 源码,Linux的虚拟网卡TUN和TAP

    TUN/TAP 提供了给用户空间程序的包的接收和传输,它可以看成是简单的点对点设备或是 以太网设备.它不是从物理设备接收包,而是从用户空间程序接收包.它发送包不是通过物 理设备来发送包,而是将这些包写 ...

  9. 计算机组成原理码质变换,计算机组成原理负数的8421码

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:计算机组成原理负数的421码 问题详情:负数的421码怎么表示说-11最好来点儿过程说明.回答:421码是的叫法, 即BCD码.Bi ...

最新文章

  1. CFX计算报错和相应解决办法(浮点错误等-持续更新)
  2. java oca_OCA第1部分中的Java难题
  3. 淘宝上线了新功能,有点元宇宙的意思了
  4. 不要等到离职,才明白这些道理
  5. JavaFx系列(二) Thread顯示進度窗的對話框
  6. 翻译: Web 3.0是一种几乎无需信任的承诺的协议/架构
  7. l2空间的完备性_话说泛函——Hilbert空间
  8. 【Qt】QWidget类详解(属性篇)
  9. HE4484E芯片资料
  10. service层调用service层的方法,并切换数据库调用不同数据库获取数据
  11. 文件存取服务器是用的什么,什么是文件存储?
  12. 2021年西式面点师(初级)考试题库及西式面点师(初级)考试试题
  13. Button 英文大写问题
  14. c语言写红绿灯程序,51单片机用C语言实现交通灯(红绿灯)源程序
  15. U盘保存文件未完成时拔掉U盘导致数据丢失的解决办法
  16. Raspberry - 解决中兴(ZTE)摄像头无法使用密码访问树莓派上的samba共享(NAS)
  17. session的到底是做什么的?
  18. ssh常用命令50条
  19. 阿里云招聘 | 遇见offer之就要圆你的大厂梦
  20. 分布式缓存数据库面试题redis

热门文章

  1. 2016计算机cpu,看完你再评论!2016年CPU市场展望分析
  2. 解决Nginx 404 not found问题
  3. 在多人音视频聊天中插入现场直播
  4. 【开发随记】国密SM2的简单运用和踩坑
  5. 计算机维修好学,计算机维修有多挣钱?维修小哥无意间透露的话,让人惊叹
  6. Java把一个大集合拆分成多个小集合,可以利用多线程提升并发处理效率
  7. 【OpenCV入门教程之二】 一览众山小
  8. js SM3 和 java SM3
  9. 从 java 8 到 java 17
  10. WWCD 2018:通知分组的使用