C#でユニークなシステム識別子を取得します。
-
19-09-2019 - |
質問
「ユニーク」システム識別子の種類を簡単にC#が使用して得られた(ハッシュし、その後、一意のシステムを識別する)ことができますか?私は、ハッシュHDDのサイズと、そのようなものでしたが、私はそのことで行くことができないように、すべて同じコンポーネントで構築されているコンピュータを識別し、区別する必要があります。
ヒント、アイデア、サンプルコードを感謝!
解決
ここで WMI に... <との良好なスタートです/ P>
// Win32_CPU will work too
var search = new ManagementObjectSearcher( "SELECT * FROM Win32_baseboard" );
var mobos = search.Get();
foreach (var m in mobos)
{
var serial = m["SerialNumber"]; // ProcessorID if you use Win32_CPU
}
あなたは、ハードウェアの多くの部分でそれを行うと解決策を考え出すことができます。
他のヒント
あなたが得るために System.Management の名前空間を使用することができますハードウェア、ProcessorId、MACアドレス、およびあなたが一緒にハッシュすることができ、より多くの情報に関連するすべてのもの。
この記事を見てみます:
http://www.codeproject.com/KB/system/GetHardwareInformation.aspx >
は、Windowsについて話していると仮定し、各Windowsのインストールは、(マイコンピュータのプロパティを表示すると、あなたが見ることができる)のユニークなプロダクトIDを持っています。私は、これはHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion:ProductId(REG_SZ)
に保存されていると思います。私はそれはあなたがそれよりももっと欲しい取る?
あなたはと WMI を使用することができますC#は、ハードウェアに関する情報のかなりのビットを取得します。
ハードディスクのIDおよびEthernet MACアドレスは、システム識別スキームで使用される一般的な2つのユニークな識別子です。 MACアドレスは、理論的には、ネットワークカードごとにユニークである。
ネットワークカードのMACアドレス:
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
// probably need to do some filtering on ni.NetworkInterfaceType here
Console.WriteLine(ni.GetPhysicalAddress());
}
あなたは GUIDのに使用に見ることができます。
GUID
とは何ですか知らない人のために、GUID(発音goo'id - グローバル一意識別子)は一意に何かを識別するために使用できる128ビットの整数です。あなたは、データベース内のユーザーや製品を格納することができる、あなたは何とか一意のデータベース内の各列を識別します。一般的なアプローチは、自動インクリメントの整数を作成することで、別の方法は、お使いの製品のGUIDを作成することです。
C#でGUIDを作成する方法
GUID方法は、System名前空間で見つけることができます。 GUID方法System.Guid.NewGuid()は、GUIDクラスの新しいインスタンスを初期化します。
特定の形式でフォーマットされたGUIDをしたいあなたの人々のために利用可能ないくつかのオーバーロードもあります。
GUIDが発生以下ライブサンプル意志出力は、ソースコードは、以下です。
Response.Write(@"<br>System.Guid.NewGuid().ToString() = " + System.Guid.NewGuid().ToString());
Response.Write(@"<br>System.Guid.NewGuid().ToString(""N"") = " + System.Guid.NewGuid().ToString("N"));
Response.Write(@"<br>System.Guid.NewGuid().ToString(""D"") = " + System.Guid.NewGuid().ToString("D"));
Response.Write(@"<br>System.Guid.NewGuid().ToString(""B"") = " + System.Guid.NewGuid().ToString("B"));
Response.Write(@"<br>System.Guid.NewGuid().ToString(""P"") = " + System.Guid.NewGuid().ToString("P"));