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");
...
5 Réponses :
Essayez ceci: p>
http: / /carso-ofen.blogspot.com/2007/02/how-to-get-My-Motherboard-Serial-number.html P>
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. P>
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. P>
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.?
É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. P>
Par exemple, l'activation de Windows examine les caractéristiques matérielles suivantes: P>
Vous pouvez en prendre quelques-uns pour générer votre identifiant d'ordinateur unique. P>
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.
Que diriez-vous du Adresse MAC a> de la carte réseau? p>
Peut-être que tu as raison. Une méthode commune simple pour Windows et Linux à l'aide de mono obtiennent une adresse MAC de la ou des cartes réseau.
Nous utilisons l'adresse MAC de la (première) carte réseau (il peut y avoir plus d'un!), Et avec plusieurs centaines de clients, cela change plus souvent que nous ne le pensions. Nous recherchons actuellement des alternatives.
@Smith, merci pour les commentaires. Veuillez proposer une autre solution aussi simple.
obtenir des informations système telles que le processorid à l'aide de WMI est un début
@Smith qui ne semble pas compatible avec Mono car WMI est spécifique Windows.
Eh bien, comme vous pouvez le constater dans la réponse suivante, les informations matérielles semblent être les meilleures. Il doit y avoir un moyen d'obtenir ces informations matérielles dans d'autres systèmes d'exploitation, connaissez-vous et API?
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%. p>
Nos statistiques montrent p>
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. P>
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.). P>
La carte mère et la CPUID renvoient parfois des valeurs non valides "Aucun", "AAAA ..", "XXXX ...", etc. P>
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. P>