Как получить уникальный идентификатор ПК?

  1. Какой уникальный идентификатор ПК?
  2. Как мы можем получить ПК unqiue ID?
  3. Это о жестком диске или материнской плате?

Я хочу сохранить идентификатор ПК в моей оконной программе. Пожалуйста, поделитесь мной.

4 ответа

Это работа для меня

Private Function CpuId() As String
    Dim computer As String = "."
    Dim wmi As Object = GetObject("winmgmts:" & _
        "{impersonationLevel=impersonate}!\\" & _
        computer & "\root\cimv2")
    Dim processors As Object = wmi.ExecQuery("Select * from " & _
        "Win32_Processor")

    Dim cpu_ids As String = ""
    For Each cpu As Object In processors
        cpu_ids = cpu_ids & ", " & cpu.ProcessorId
    Next cpu
    If cpu_ids.Length > 0 Then cpu_ids = _
        cpu_ids.Substring(2)

    Return cpu_ids
End Function

смотрите здесь

Попробуйте это, это тянет идентификатор от процессора.

Dim win32MgmtClass as System.Management.ManagementClass
win32MgmtClass = new System.Management.ManagementClass("Win32_Processor")
Dim processors as System.Management.ManagementObjectCollection
processors = win32MgmtClass.GetInstances()

For Each processor As System.Management.ManagementObject In processors
    MessageBox.Show(processor("ProcessorID").ToString())
Next

Я предполагаю, что вы хотите создать идентификатор, который является уникальным для машины. Жесткий диск, вероятно, самый простой подход, потому что другое оборудование слишком разнородно, чтобы иметь определенный способ получения их серийных номеров.

Вероятно, проще всего использовать число, которое Windows генерирует для жесткого диска.

Вы можете найти его в разделе HKEY_LOCAL_MACHINE\SYSTEM\MountingDevices и назвать его ключ \DosDevices\C: (при условии, что диск C: является основным системным диском - что не так в некоторых очень редких случаях, но затем вы можете проверить что такое системный диск и используйте соответствующий ключ).

Есть еще один номер, связанный с жесткими дисками, который называется UUID, и вы можете найти сценарии для его получения. Например: http://www.windowsnetworking.com/articles_tutorials/Deploying-Windows-7-Part18.html для Windows. Или http://blog.granneman.com/2007/07/26/find-out-a-hard-drives-uuid/ для Linux.

Я также нашел эту статью о получении серийного номера материнской платы: Получение уникального идентификационного номера материнской платы через программирование на vC++

"Уникальный идентификатор ПК" обычно означает идентификатор оборудования, используемый для однозначной идентификации компьютера. Например, они могут использоваться для отслеживания использования программного обеспечения на компьютерах.

Согласно этому вопросу, "идентификатор материнской платы, идентификатор процессора и идентификатор bios" "наименее вероятно изменится".

Этот вопрос содержит код для получения такой информации в C#; К сожалению, я не смог найти никаких тем для VB.NET, но портирование должно быть простым.

Требуется https://www.nuget.org/packages/System.Management/

System.Management 4.7.0

Как видите, есть "Уникальное значение" плюс некоторые специальные вычисления. Вы можете сделать это настолько сложным, насколько можете, но обратная инженерия может в конечном итоге выявить это.

Лучшая (но более медленная) версия для идентификатора компьютера (требуется импорт System.Management и ссылка): Код:

    Public Shared Function GetComputerID() As Long
        Dim objMOS As New ManagementObjectSearcher("Select * From Win32_Processor")
        For Each objMO As Management.ManagementObject In objMOS.Get
            GetComputerID += objMO("ProcessorID").GetHashCode
        Next
        GetComputerID += My.Computer.Name.GetHashCode
    End Function
Другие вопросы по тегам