9
votes

Comment identifier de manière unique l'ordinateur en utilisant C #?

Comment identifier de manière unique l'ordinateur (packboard) à l'aide de C # (. NET / Mono, application locale)?

Edition. strong> Nous pouvons identifier la carte mère dans .net en utilisant quelque chose comme ça (voir Obtenez des identifiants système uniques en C # ): p>

using System.Management;
...
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_MotherboardDevice");
...


0 commentaires

5 Réponses :


3
votes

Essayez ceci:

http: / /carso-ofen.blogspot.com/2007/02/how-to-get-My-Motherboard-Serial-number.html

Personnellement, j'irais avec le numéro de série du disque dur. Si une carte mère meurt et est remplacée, ce PC n'est plus valide. Si le lecteur de disque dur est remplacé, cela n'a pas beaucoup d'importance car le logiciel était dessus.

Bien sûr, d'autre part, si le disque dur est juste déplacé ailleurs, l'information va avec elle, vous pouvez donc vouloir regarder une combinaison de numéros de série, en fonction de ce que vous voulez.


2 commentaires

Mes embauchons et mes systèmes d'exploitation ont tendance à survivre à mon disque dur. Au moins jusqu'à présent. Il y a des choses appelées "sauvegardes" qui permettent à un logiciel OS + de survivre à la mort du disque dur :-)


Pour moi, la chose la plus unique qui définisse un ordinateur est le disque dur. Vous prenez le disque dur vers un autre plateau principal. Pensez-vous que votre ordinateur est vide / avec une nouvelle carte mère HDD ou celle qui dispose de toutes vos données, de votre système d'exploitation, etc.?



5
votes

0 commentaires

13
votes

Écrivez une fonction qui prend quelques paramètres de matériel uniques en tant qu'entrée et génère un hachage d'entre eux.

Par exemple, l'activation de Windows examine les caractéristiques matérielles suivantes:

  • Adaptateur d'affichage
  • Adaptateur SCSI
  • adaptateur IDE (efficacement la carte mère)
  • Adaptateur réseau (NIC) et son adresse MAC
  • Plage de la gamme de RAM (c'est-à-dire 0-64MB, 64-128MB, etc.)
  • Type de processeur
  • Numéro de série de processeur
  • Dispositif de disque dur
  • Numéro de série du volume du disque dur (VSN)
  • CD-ROM / CD-RW / DVD-ROM

    Vous pouvez en prendre quelques-uns pour générer votre identifiant d'ordinateur unique.


2 commentaires

D'autre part, vous voudrez peut-être les garder séparées. Cela permettrait à l'exemple de mettre en place plus de mémoire et vous pouvez autoriser des changements aussi longtemps qu'ils se produisent une à la fois.


Bonne idée de générer un hash.




4
votes

Vous avez de manière réaliste que vous avez de manière réaliste d'une adresse mère de carte mère, de CPUID, de disques et de mac, de l'expérience qu'aucun d'entre eux n'est 100%.

Nos statistiques montrent

  • la série de disques est manquante de 0,1%
  • Mac manque 1,3%
  • ID de la carte mère manque 30%
  • CPUID est manquant 99%

    0,04% des machines testées n'ont donné aucune information, nous ne pouvions même pas lire le nom de l'ordinateur. C'est peut-être que celles-ci étaient une sorte de PC virtuel, une instance Hyperv ou VMware, ou peut-être juste très enfermée? En tout cas, votre conception doit être capable de faire face à ces cas.

    La série de disques est la plus fiable, mais facile à changer, Mac peut être modifiée et en fonction du filtrage appliqué lors de la lecture, il peut modifier si les pilotes de périphérique sont ajoutés (Hyperv, Wireshark, etc.).

    La carte mère et la CPUID renvoient parfois des valeurs non valides "Aucun", "AAAA ..", "XXXX ...", etc.

    Vous devez également noter que ces fonctions peuvent être très lentes à appeler (elles peuvent prendre quelques secondes même sur un PC rapide), il peut donc y avoir la peine de les frapper sur un fil de fond le plus tôt possible, vous pouvez idéalement pas 't veux bloquer sur eux.


0 commentaires