Generic PC Identifier Class.

Posts 15 of 5 · Page 1 of 1
Generic PC Identifier Class.
Nothing Fancy just as title says

-Note: Made by me free to use how every you want.

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
using System.Net;
using System.Xml;
using System.IO.Compression;
using System****ntime.InteropServices;
using System.Media;
using System.Threading;
using System.Management;
using Microsoft.Win32;
using System.Net.NetworkInformation;
using System.Security.Cryptography;
namespace GenericPCID
{

    public class PCID
    {
        public static string GetCPUId()
        {
            #region CPUid
            string cpuInfo = String.Empty;
            string temp = String.Empty;
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if (cpuInfo == String.Empty)
                {
                    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                }
            }
            return cpuInfo;
            #endregion
        }
        public static string GetMotherBoardID()
        {
            #region Mboard
            ManagementObjectCollection mbCol = new ManagementClass("Win32_BaseBoard").GetInstances();
            ManagementObjectCollection.ManagementObjectEnumerator mbEnum = mbCol.GetEnumerator();
            mbEnum.MoveNext();
            return ((ManagementObject)(mbEnum.Current)).Properties["SerialNumber"].Value.ToString();
            #endregion
        }
        public static string GetMacAddress()
        {
            #region MacAddress
            string macs = "";
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces)
            {
                PhysicalAddress pa = ni.GetPhysicalAddress();
                macs += pa.ToString();
            }
            return macs;
            #endregion
        }
        public static string GetVolumeSerial()
        {
            #region HD serial
            string strDriveLetter = "";
            ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                try
                {
                    if ((UInt16)mo["MediaType"] == 29)
                    {
                        String serial = mo["SerialNumber"].ToString().Trim();
                        if (!String.IsNullOrEmpty(serial))
                        {
                            strDriveLetter = (string)mo["SerialNumber"];
                            return strDriveLetter;
                        }
                    }
                }
                catch { }
            }
            return strDriveLetter;
            #endregion
        }
        public static string GetGenericID()
        {
            #region UID
            string ID = GetCPUId()  + GetMotherBoardID()  + GetMacAddress()  + GetVolumeSerial();
            HMACSHA1 hmac = new HMACSHA1();
            hmac.Key = Encoding.ASCII.GetBytes(GetMotherBoardID());
            hmac.ComputeHash(Encoding.ASCII.GetBytes(ID));
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < hmac.Hash.Length; i++)
            {
                sb.Append(hmac.Hash[i].ToString("X2"));
            }
            return sb.ToString();
            #endregion
        }
    }
}
To get the generic PCID use the GetGenericID(); function.
Thanks.
I'm not sure you know what generics are.
Quote Originally Posted by Jason View Post
I'm not sure you know what generics are.

Code:
ge·ner·ic

Characteristic of or relating to a class or group of things; not specific
- chèvre is a generic term for all goat's milk cheese
Exactly, and I see no generics used in that code
Posts 15 of 5 · Page 1 of 1

Post a Reply

Tags for this Thread

None

Need help?