Question

quel type d'identificateurs de système « uniques » peuvent être facilement obtenues en utilisant C # (pour hachage et identifier de manière unique un système)? Je pourrais simplement la taille hachage du disque dur et des choses comme ça, mais je dois identifier et distinguer les ordinateurs qui sont tous construits par les mêmes composants, donc je ne peux pas aller par là.

Appréciez des conseils, des idées, des exemples de code!

Était-ce utile?

La solution

Voici un bon départ avec WMI ...

// 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
}

Vous pouvez le faire avec beaucoup de morceaux de matériel et trouver une solution.

Autres conseils

Vous pouvez utiliser l'espace de noms System.Management pour obtenir toutes choses liées au matériel, ProcessorId, adresses MAC, et beaucoup plus d'informations vous pouvez hachage ensemble.

Jetez un oeil à cet article:

http://www.codeproject.com/KB/system/GetHardwareInformation.aspx

En supposant que vous parlez de Windows, puis chaque installation Windows dispose d'un identifiant de produit unique (que vous pouvez voir lorsque vous affichez les propriétés de Poste de travail). Je pense que cela est stocké dans HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion:ProductId(REG_SZ). Je suppose que vous voulez plus que cela?

Vous pouvez utiliser avec WMI C # pour obtenir un peu d'informations sur le matériel.

ID dur de disque et Ethernet MAC Address sont deux identificateurs uniques couramment utilisés dans les systèmes d'identification du système. L'adresse MAC est, en théorie, unique par carte réseau.

Carte réseau adresse MAC:

foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
    // probably need to do some filtering on ni.NetworkInterfaceType here
    Console.WriteLine(ni.GetPhysicalAddress());
}

Vous pouvez regarder dans de GUID

Qu'est-ce qu'un GUID

Pour ceux d'entre vous qui ne connaissent pas, un GUID (prononcé goo'id - identificateur global unique) est un nombre entier de 128 bits qui peut être utilisé pour identifier quelque chose. Vous pouvez stocker des utilisateurs ou des produits dans votre base de données et que vous souhaitez une certaine façon d'identifier de manière unique chaque ligne de la base de données. Une approche commune est de créer un nombre entier de autoincrementing, une autre façon serait de créer un GUID pour vos produits.

Comment créer un GUID en C #

La méthode GUID se trouve dans l'espace de noms de système. Procédé GUID System.Guid.NewGuid () initialise une nouvelle instance de la classe GUID.

Il y a aussi quelques disponibles pour ceux surcharges d'entre vous qui veulent que le GUID formaté d'une manière particulière.

L'échantillon direct suivant va afficher le GUID généré, le code source est également ci-dessous.

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"));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top