一意のコンピューター ID を取得する方法を探しています。
この投稿によると、この目的でプロセッサ ID を使用することはできません。マザーボードIDを取得できますか? コンピュータを識別する最良の方法は何ですか?
一意のコンピューター ID を取得する方法を探しています。
この投稿によると、この目的でプロセッサ ID を使用することはできません。マザーボードIDを取得できますか? コンピュータを識別する最良の方法は何ですか?
あなたが言ったように、CPU IDは一意ではありませんが、別のハードウェア識別子と一緒に使用して独自の一意のキーを作成できます。
参照アセンブリSystem.Management
したがって、次のコードを使用して CPU ID を取得します。
string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["processorID"].Value.ToString();
break;
}
次に、次のコードを使用して HD ID を取得します。
string drive = "C";
ManagementObject dsk = new ManagementObject(
@"win32_logicaldisk.deviceid=""" + drive + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();
次に、これら 2 つのシリアル番号を組み合わせて、そのマシンの uniqueId を取得できます。
string uniqueId = cpuInfo + volumeSerial;
明らかに、ID を取得するハードウェア コンポーネントが多いほど、一意性が高くなります。ただし、同じマシンが同一の CPU シリアルとハード ディスク シリアルを持つ可能性は、すでにほとんどありません。
ネットワークアダプタのMACアドレス? Windows OS インストールのセキュリティ識別子 (SID)? (扱っているのは Windows だと仮定します) 各 PC の GUID を生成していただけませんか?
正確に何を達成しようとしていますか?
マザーボード ID はかなりユニークな識別子です。もう 1 つのオプションは、ネットワーク カードの MAC アドレスを使用することです。これは、ほぼ一意です。