当前位置: 首页 > news >正文

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")(0)
                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

 

作者: 唐宋元明清2188
出处: http://www.cnblogs.com/kybs0/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

相关文章:

  • 系统时间不对 导至不能正常上网
  • select into 与 insert into select
  • [CentOs7]iptables防火墙安装与设置
  • viewPager + fragment
  • 从内核文件系统看文件读写过程【转】
  • Jupiter的安装和使用
  • 【趣解编程】条件语句if
  • [OC]UILabel 文字长的截断方式
  • SqlServer基础系列——row_number() rank() dense_rank()SqlServer系列笔记
  • 项目管理文件夹模板
  • 网站开发之DIV+CSS简单布局网站入门篇(五)
  • Nodejs基础:路径处理模块path总结
  • gcc选项-g与-rdynamic的异同_转
  • 思维改变生活:亲身经历了就一定能明白吗?
  • Python2除法
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【翻译】babel对TC39装饰器草案的实现
  • 【面试系列】之二:关于js原型
  • Angular 响应式表单之下拉框
  • FastReport在线报表设计器工作原理
  • gcc介绍及安装
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Linux后台研发超实用命令总结
  • MySQL数据库运维之数据恢复
  • Python - 闭包Closure
  • sessionStorage和localStorage
  • Spark RDD学习: aggregate函数
  • vue-router的history模式发布配置
  • 从输入URL到页面加载发生了什么
  • 力扣(LeetCode)965
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端js -- this指向总结。
  • 如何进阶一名有竞争力的程序员?
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​Spring Boot 分片上传文件
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #LLM入门|Prompt#3.3_存储_Memory
  • #stm32驱动外设模块总结w5500模块
  • #WEB前端(HTML属性)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (二)正点原子I.MX6ULL u-boot移植
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)