C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)
在开发过程中,经常需要获取电脑的一些属性,如获取硬盘ID/CPU序列号/MAC地址作为来加密字符串。
1、硬盘
在我查看网上一些文档时,发现很多人对硬盘序列号很模糊~
什么叫硬盘序列号?指的是作为一个硬盘的标识;但是有时候发现,同事的电脑硬盘序列号有重复的。所以硬盘标识我们可以试试用ID,这个如何获取下面讲解。


我们可以运行DOS命令,或者查看注册表,查看硬盘的序列号。如图中所示:都是HGST HTS725050A7E630。
大部分情况下,大家都可以通过如下获取:
Dim key As RegistryKey = Registry.LocalMachine
Dim subKey = key.OpenSubKey("HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0")
Dim bbb = subKey.GetValue("Identifier")
也可以通过Wmi方式获取:
Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
Dim diskId As String '数字ID
Dim diskSerialNumber As String '这个我们暂且称其为序列号码
Dim diskModel As String '序列号
For Each cmicWmiObj As ManagementObject In cmicWmi.Get
diskId = cmicWmiObj("signature")
diskSerialNumber = cmicWmiObj("serialnumber")
diskModel = cmicWmiObj("Model")
Next
个人建议用Wmiy中的signature来作为ID,毕竟是数字,且不重复。
PS:顺带提一个硬盘的容量,通过属性size可以获取单个硬盘的大小,加起来的话就是电脑总容量了。
2、CPU序列号
Dim Wmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_Processor")
Dim cpuId As String
For Each WmiObj As ManagementObject In Wmi.Get
cpuId = WmiObj("ProcessorId")
Next
3、MAC地址和IP地址
Dim netid As String = ""
Dim ip As String
Dim searcher As New ManagementObjectSearcher("select * from win32_NetworkAdapterConfiguration")
Dim moc2 As ManagementObjectCollection = searcher.Get()
For Each mo As ManagementObject In moc2
If mo("IPEnabled") Then
netid = mo("MACAddress")
ip = mo("IpAddress")()
Exit For
End If
Next
IpAddress得到的是含有俩个元素的数组,第一个是实际上的IP。
4、电脑系统类型与物理内存
Dim pcType As String
Dim pcMemory As String
Dim mos As New ManagementObjectSearcher("select * from Win32_ComputerSystem")
For Each mo As Object In mos.Get()
pcType = mo("SystemType")
pcMemory = mo("TotalPhysicalMemory")
Next
系统类型,电脑的操作系统;物理内存,即是指运行内存。
比如我当前电脑配置是“x64-based PC”、“8272879616”-8G
5、其它
Dim userName = Environment.UserName--获取用户名 eg:Admin
Dim machineName = Environment.MachineName--获取电脑名称 eg:IBM777-PB4DVTY
C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)的更多相关文章
- 通过js获取计算机内网ip,计算机名,mac地址
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- C# 中获取CPU序列号/网卡mac地址
1.cpu序列号2.mac序列号3.硬盘id在给软件加序列号时这三个应该是最有用的,可以实现序列号和机器绑定,对保护软件很有好处.哈哈. using System; using System.Ma ...
- 怎么查询局域网内全部电脑IP和mac地址等信息?
在局域网内查询在线主机的IP一般比较简单,但局域网内全部电脑的IP怎么才能够查到呢?查询到IP后我还要知道对方的一些详细信息(如MAC地址.电脑名称等)该怎么查询呢??? 工具/原料 Windows ...
- 怎么查询局域网内全部电脑IP和mac地址..
在局域网内查询在线主机的IP一般比较简单,但局域网内全部电脑的IP怎么才能够查到呢?查询到IP后我还要知道对方的一些详细信息(如MAC地址.电脑名称等)该怎么查询呢??? 工具/原料 Windows ...
- 分享:PHP获取MAC地址的实现代码
原文地址:http://www.jbxue.com/article/12635.html发布:thatboy 来源:Net [大 中 小] 分享一例php取得机器mac地址的代码,学习下p ...
- 手机电脑Mac地址修改方法
1.什么是Mac地址? MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在O ...
- C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
最近学习过程中,想到提取系统硬件信息做一些验证,故而对网上提到的利用.NET System.Management类获取硬件信息做了进一步的学习.验证.验证是分别在4台电脑,XP SP3系统中进行,特将 ...
- C# 获取电脑MAC地址,IP地址,物理内存,CPU序列号,硬盘ID..........................
上班很忙,自己做个记录 代码如下: 需要引入:System.Management 代码如下: using System; using System.Collections.Generic; using ...
- java获取硬盘ID以及MAC地址
http://blog.csdn.net/coolwzjcool/article/details/6698327 版权声明:本文为博主原创文章,未经博主允许不得转载. 为了达到软件注册,或者说软件和电 ...
随机推荐
- CSS系列:CSS常用样式
1. 通用样式 Base.css * { margin:; padding:; } body { width: 1000px; margin: 0 auto; font-size: 12px; fon ...
- 表值函数与JS中split()的联系
在公司用云平台做开发就是麻烦 ,做了很多功能或者有些收获,都没办法写博客,结果回家了自己要把大脑里面记住的写出来. split()这个函数我们并不陌生,但是当前台有许多字段然后随意勾选后的这些参数传递 ...
- require() 源码解读
2009年,Node.js 项目诞生,所有模块一律为 CommonJS 格式. 时至今日,Node.js 的模块仓库 npmjs.com ,已经存放了15万个模块,其中绝大部分都是 CommonJS ...
- 前端学HTTP之网站架构演化
前面的话 本文将详细介绍网站架构的演化过程 初始阶段 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来.小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的 ...
- 防御性编程习惯:求出链表中倒数第 m 个结点的值及其思想的总结
防御性编程习惯 程序员在编写代码的时候,预料有可能出现问题的地方或者点,然后为这些隐患提前制定预防方案或者措施,比如数据库发生异常之后的回滚,打开某些资源之前,判断图片是否存在,网络断开之后的重连次数 ...
- html5 canvas常用api总结(一)
1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...
- 你真的会玩SQL吗?让人晕头转向的三值逻辑
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- 如果你也会C#,那不妨了解下F#(6):面向对象编程之“类”
前言 面向对象的思想已经非常成熟,而使用C#的程序员对面向对象也是非常熟悉,所以我就不对面向对象进行介绍了,在这篇文章中将只会介绍面向对象在F#中的使用. F#是支持面向对象的函数式编程语言,所以你用 ...
- React Native环境搭建以及几个基础控件的使用
之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...
- alienware Win8 系统安装
原作者网名 alienware-小来: 我的外星人 老是装系统出错.我觉得写的不错.把原作者的东西拿过来.. 对于win7系统的用户来说想要体验下win8.1系统,或者是原来win8.1系统加装固态后 ...