文章出處
文章列表
在開發過程中,經常需要獲取電腦的一些屬性,如獲取硬盤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
文章列表
全站熱搜