L'obtention de la machine numéro de série et l'ID du CPU à l'aide de C/C++ sous Linux
Comment puis-je obtenir de la machine numéro de série et l'ID du CPU dans un système Linux?
Exemple de code est très apprécié.
- aucun des coups sur le 1. page avoir une vraie réponse. Cette question est le 1. frapper maintenant, ça va être sympa si elle devient une vraie réponse. C'est un des buts de la SORTE. Pour fournir une réponse canonique ot des questions spécifiques, sans tous les morts contenu des forums.
- par la Machine d'un numéro de Série " entendez-vous les numéros de série de la Cpu ou la carte mère numéro de série ?
- en effet très intéressant. Il y a beaucoup de upvotes sur les réponses, et on a même accepté, même si elle n'est pas du tout répondre à la question. Je pense que je vais downvote tous et le drapeau de la question. Sérieusement, c'est ridicule. Même André Holzner a demandé des précisions, puis posté juste quelque chose à rejoindre le point de la course, puis j'ai été accepté pour une merde réponse.
Vous devez vous connecter pour publier un commentaire.
Ici est ce que le noyau Linux semble utiliser:
laquelle on peut ensuite utiliser comme par exemple:
Où une bonne référence sur la façon d'utiliser le
CPUID
instruction est en cet article de Wikipédia.MODIFIER L'article de Wikipédia dit que le numéro de série a été introduit avec le Pentium III, mais n'a pas été plus mis en œuvre dans les modèles plus tard en raison de problèmes de confidentialité. Sur un système Linux, vous pouvez vérifier la présence de cette fonctionnalité (PSN bits) en faisant:
si cela ne montre pas tout, votre système ne supporte pas le numéro de série du processeur.
Il y a un cpuinfo.h inclure dans GCC. C'est sûr, l'utiliser.
De l'échantillon (j'ai le GCC 4.7+ et se sentir heureux d'utiliser le mot "auto" ici):
De sortie:
Les Informations sur le processeur que vous pourriez extrait de
/proc/cpuinfo
.Pour obtenir le Numéro de Série, vous devriez jeter un oeil à
dmidecode
. Je ne l'ai pas en ce moment, maisdmidecode
est en mesure de vous montrer le numéro de série, donc je commencerais par là.Ce programme va vous aider à exécuter des commandes Linux de base du programme:
D'utilisation de l'API:
GetSystemOutput("/usr/bin/lsb_release -a")
Et en suivant les commandes: