C#读取计算机的机器码、网卡、设备码
/// <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#读取计算机的机器码、网卡、设备码相关推荐
- 隐藏在计算机网卡怎样删除,如何卸载电脑中隐藏的虚拟网卡设备
虚拟网卡主要是建立远程计算机间的局域网,在此虚拟的局域网上能进行所有物理存在的局域网的操作,可以互相访问,可以联网玩游戏.当需要卸载电脑系统中的虚拟网卡时,在设备管理器中无法查看到虚拟网卡设备,那么怎 ...
- java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档
java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档 本源码技 ...
- 计算机毕业设计ssm特种设备全生命周期管理系统8b729系统+程序+源码+lw+远程部署
计算机毕业设计ssm特种设备全生命周期管理系统8b729系统+程序+源码+lw+远程部署 计算机毕业设计ssm特种设备全生命周期管理系统8b729系统+程序+源码+lw+远程部署 本源码技术栈: 项目 ...
- 计算机毕业设计Java中小企业设备管理系统(源码+系统+mysql数据库+Lw文档)
计算机毕业设计Java中小企业设备管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java中小企业设备管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B ...
- Linux下Rtl8139too网卡设备驱动程序关键函数剖析
static int __devinit rtl8139_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) 函数功能描述 ...
- 设备唯一标识/设备码/设备标识码
文章目录 一.MAC地址 二.IMEI 三.MEID MEID 和 IMEI 用途的区别 四.序列号 (一)苹果手机序列号 (二)华为手机序列号 一.MAC地址 MAC地址(英语:Media Acce ...
- 机器码与字节码的区别
1.机器码 是电脑CPU直接读取运行的机器码,运行速度最快,但是非常晦涩难懂,同时也比较难编写:机器码就是计算机可以直接执行,并且执行速度最快的代码: 用机器语言编写程序,编程人员要首先熟记所用计算机 ...
- linux 虚拟网卡 源码,Linux的虚拟网卡TUN和TAP
TUN/TAP 提供了给用户空间程序的包的接收和传输,它可以看成是简单的点对点设备或是 以太网设备.它不是从物理设备接收包,而是从用户空间程序接收包.它发送包不是通过物 理设备来发送包,而是将这些包写 ...
- 计算机组成原理码质变换,计算机组成原理负数的8421码
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:计算机组成原理负数的421码 问题详情:负数的421码怎么表示说-11最好来点儿过程说明.回答:421码是的叫法, 即BCD码.Bi ...
最新文章
- CFX计算报错和相应解决办法(浮点错误等-持续更新)
- java oca_OCA第1部分中的Java难题
- 淘宝上线了新功能,有点元宇宙的意思了
- 不要等到离职,才明白这些道理
- JavaFx系列(二) Thread顯示進度窗的對話框
- 翻译: Web 3.0是一种几乎无需信任的承诺的协议/架构
- l2空间的完备性_话说泛函——Hilbert空间
- 【Qt】QWidget类详解(属性篇)
- HE4484E芯片资料
- service层调用service层的方法,并切换数据库调用不同数据库获取数据
- 文件存取服务器是用的什么,什么是文件存储?
- 2021年西式面点师(初级)考试题库及西式面点师(初级)考试试题
- Button 英文大写问题
- c语言写红绿灯程序,51单片机用C语言实现交通灯(红绿灯)源程序
- U盘保存文件未完成时拔掉U盘导致数据丢失的解决办法
- Raspberry - 解决中兴(ZTE)摄像头无法使用密码访问树莓派上的samba共享(NAS)
- session的到底是做什么的?
- ssh常用命令50条
- 阿里云招聘 | 遇见offer之就要圆你的大厂梦
- 分布式缓存数据库面试题redis