これらの 3 つの変数を使用して一意のハードウェア ID を生成するライブラリを C# で開発しています。
- マシン名
- Macアドレス
- ハードドライブのシリアル番号
.NET と Mono の両方でマシン名と MAC アドレスを取得できますが、ハード ドライブのシリアル番号は .NET でしか取得できません。ハードドライブのシリアル番号をモノラルで取得する方法があるかどうか、または別の変数 (CPU 名、マザーボード ID など) を使用する必要があるかどうかを知っている人はいますか?
これらの 3 つの変数を使用して一意のハードウェア ID を生成するライブラリを C# で開発しています。
.NET と Mono の両方でマシン名と MAC アドレスを取得できますが、ハード ドライブのシリアル番号は .NET でしか取得できません。ハードドライブのシリアル番号をモノラルで取得する方法があるかどうか、または別の変数 (CPU 名、マザーボード ID など) を使用する必要があるかどうかを知っている人はいますか?
このドキュメントによると:
Mac OS X は、ユーザーレベルのアプリケーションからのハードディスクのシリアル番号の取得をサポートしていません
Mac で root になるという要件が問題にならない場合 (または Mac バージョンをスキップする場合)、問題を解決する方法が 1 つあります。
この記事またはこの質問を使用して、次のことを判断できます 。
LINUX システムを使用していることがわかっている場合は、次のようなシステム コマンドを実行してハードドライブ シリアルを取得できます。
/sbin/udevadm info --query=property --name=sda
Mac では、ディスク ユーティリティを (root として) 使用して、ハードドライブのシリアルを取得できます。Windowsでは、標準のアプローチを使用できます。