Torna al Thread

Imports System Imports System.Management Public Class Serial Private Shared Function GetVolumeSerial() As [String] Return GetVolumeSerial("C") End Function Private Shared Function GetMBSerial() As [String] Dim serial As [String] = [String].Empty Dim oQuery As New System.Management.ObjectQuery("select SerialNumber from Win32_BaseBoard") Dim oSearcher As New ManagementObjectSearcher(oQuery) Dim oReturnCollection As ManagementObjectCollection = oSearcher.[Get]() For Each oReturn As ManagementObject In oReturnCollection serial += oReturn("SerialNumber").ToString() Next Return serial End Function Private Shared Function GetVolumeSerial(driveLetter As String) As String 'Check for valid drive letter argument. Dim validDriveLetters As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" If validDriveLetters.IndexOf(driveLetter) <> -1 Then If driveLetter.Length = 1 Then Dim disk As System.Management.ManagementObject = Nothing disk = New System.Management.ManagementObject("Win32_LogicalDisk.DeviceID=""" + driveLetter + ":""") 'System.Management.PropertyData DiskProperty; For Each diskProperty As System.Management.PropertyData In disk.Properties If diskProperty.Name = "VolumeSerialNumber" Then 'Return the volume serial number. Return diskProperty.Value.ToString() End If Next End If End If Return Nothing 'Invalid drive letter. End Function ''' <summary> ''' Fornisce la combinazione del seriale del disco c e il seriale della motherboard ''' </summary> ''' <returns></returns> Public Shared Function GetIdMachine() As [String] Return (Serial.GetVolumeSerial() + Serial.GetMBSerial()).Trim() End Function ''' <summary> ''' Fornisce l'md5 della combinazione del seriale del disco c e il seriale della motherboard ''' </summary> ''' <returns></returns> Public Shared Function GetMd5IdMachine() As [String] Return GetMD5Hash(GetIdMachine()) End Function Private Shared Function GetMD5Hash(input As String) As String Dim x As New System.Security.Cryptography.MD5CryptoServiceProvider() Dim bs As Byte() = System.Text.Encoding.UTF8.GetBytes(input) bs = x.ComputeHash(bs) Dim s As New System.Text.StringBuilder() For Each b As Byte In bs s.Append(b.ToString("x2").ToLower()) Next Dim password As String = s.ToString() Return password End Function End Class
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5