Unik maskinvare-ID i C #

Av | november 13, 2021

Hver datamaskin har komponenter som har et spesifikt serienummer. Noen numre tildeles når operativsystemet er installert, men noen er innebygd i maskinvaren. Med C # kan flere innebygde serier kombineres for å lage en unik datamaskin-ID.

Hvorfor en unik serie? En enkel grunn er å sette merkevareprogramvare på en bestemt datamaskin. Et lisensieringssystem, kanskje lite fleksibelt, kan være ganske effektivt avhengig av hvordan det brukes.

For denne artikkelen vil vi bruke to serier, harddisken og CPU. Begge vil bli oppnådd med den integrerte System.Management C #-klassen.

Hvis du oppretter et nytt prosjekt i Visual Studio 2005 (en hvilken som helst av utgavene), vil du legge merke til at linjen «bruker System.Management» ikke fungerer. Du må legge det til manuelt:

  • Gå til Solution Explorer
  • Høyreklikk Referanser og klikk «Legg til referanse …»
  • Se etter System.Management på .Net-fanen.

Når det er konfigurert, er det enkelt å få maskinvare-ID-ene.

Identifikatoren til harddisken avhenger selvsagt av harddisken. Her er pseudokoden:

  • Opprett et ManagementObject med strengen «win32_logicaldisk.deviceid =[drive letter here]: «
  • Få tilgang til serien med «VolumeSerialNumber»-indeksen, for eksempel disk[«VolumeSerialNumber»] hvor disk er ManagementObject

CPU-IDen er også ganske fleksibel. Mange datamaskiner har i dag mer enn én CPU. Bruk den første som i mitt eksempel, eller flere:

  • Opprett et ManagementObject med strengen «win32_processor»
  • Gå gjennom de tilgjengelige prosessorene
  • Få tilgang til eiendommen slik: managObject.Properties[«processorID»]

Å kombinere dem kan være enkelt eller komplekst. Bare å legge dem sammen på rad fungerer fint. For mitt eksempel fjernes noen redundante 0-er før ID-ene til den første tilgjengelige stasjonen og den første CPU-en kommer.

Prøv det for å se hvordan tallene ser ut.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *