質問

一意のコンピューター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つのシリアルを組み合わせて、そのマシンのユニークなIDを取得することができます。

string uniqueId = cpuInfo + volumeSerial;

明らかに、IDを取得するハードウェアコンポーネントが多いほど、一意性が大きくなります。ただし、同じマシンが同一のCPUシリアルとハードディスクシリアルを持つ可能性は、すでにスリムではありません。

他のヒント

マザーボードIDは非常にユニークな識別子です。もう1つのオプションは、ネットワークカードMacアドレスを使用することです。これは非常にユニークです。

ネットワークアダプターのMacアドレス? Windows OSのインストールのセキュリティ識別子(SID)? (それがあなたが扱っているウィンドウだと仮定すると)あなたは各PCのガイドを生成するだけですか?

正確に何を達成しようとしていますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top