12

root 権限なしで Linux (Ubuntu) で CPU シリアル番号を取得するにはどうすればよいですか?

cpuid コマンドを試してみました。ルート権限なしで動作しますが、すべてゼロを返すようです (BIOS で何かを変更する必要があるためだと思います)。

ルート権限なしで、BIOS を変更することなく、プログラムから CPU シリアルを取得する別の方法を教えてください。

4

7 に答える 7

9

ルート権限が必要です。答えは dmidecode です。
CPU ID が必要な場合:

dmidecode | grep -w ID | sed "s/^.ID\: //g"

これにより CPU ID が取得され、出力から 'ID: ' が削除
されます。コンピュータ ID を取得する必要がある場合:

dmidecode | grep -w UUID | sed "s/^.UUID\: //g"

root パーミッションなしでカーネル uuid を取得したい場合は、次のようにします。

dmesg | grep UUID | grep "Kernel" | sed "s/.*UUID=//g" | sed "s/\ ro\ quiet.*//g"

最近のコメントのせいです。ずっと前に起こったので、なぜこれらの ID がマシン ID として採用されたのか、今は説明できません。n セクションから実際のプロセッサ ID を取得しましProcessor Informationた。Debian OS で展開。

pr=0; dmidecode | while read line; do [ "$line" == "Processor Information" ] && pr=1; [ $pr -eq 0 ] && continue; [ -n "$(echo $line | grep '^ID')" ] && echo $line | awk -F"ID: " '{print $2}' && break; done
于 2014-04-10T14:51:07.263 に答える
7

プロセッサのシリアル番号は、基本的に Pentium III プロセッサのみにありました。Intel は、提起されたプライバシー上の懸念により、それ以降のモデルからそれを削除しました。そのため、PIII を使用していて、BIOS 設定でシリアル番号を読み取ることができない限り、取得できるのは 0 だけです。

于 2011-02-18T19:11:02.917 に答える
1

cpuidの使用に関係なく、同じシリアル番号を返しますsudo:

 % cpuid | grep serial
Processor serial: 0002-0652-0000-0000-0000-0000
 % sudo cpuid | grep serial
Processor serial: 0002-0652-0000-0000-0000-0000

あなたが言及している他のシリアル番号がない限り...?

于 2011-02-18T19:12:37.757 に答える
1

ライセンスを、実行可能ファイルがユーザーのファイルシステムにインストールされたときに取得する inode 番号に結び付けます。他の場所に移動すると、変更されます。

欠点は、プログラムをバックアップから復元する必要がある場合、数値が保持されない可能性があることです。

私は以前にこのようなことをしたことがあります。ハードウェアの変更時に本物のユーザーがライセンスをアクティブ化できるようにすることについては、非常に寛大でなければなりません。

于 2012-03-10T05:16:11.770 に答える
1

この質問が以前に尋ねられたときに示唆されたように、ライセンスにこれを使用しようとしている場合 (ライセンスタグを使用したため)、MAC アドレスを試してみることをお勧めします: CPU シリアル番号

于 2011-02-18T19:13:53.437 に答える
-2

チェックしましたdmesgか?入った/bin

于 2011-02-18T19:07:38.633 に答える