दिलचस्प पोस्ट
MYSQL एक सम्मिलित वक्तव्य में अधिकतम दिनांक चुनें मैं कैसे जांच सकता हूं कि कोई शब्द PHP का उपयोग करते हुए किसी अन्य स्ट्रिंग में है? जावा में सत्र प्रबंधन के लिए सर्वश्रेष्ठ विकल्प $ (विंडो) के बीच अंतर क्या है। लोड और $ (दस्तावेज़)। क्यों Visual Studio 2010 पीडीबी फाइलों को खोजने / खोलने में सक्षम नहीं है? पायथन – फ़ंक्शन मापदंडों के रूप में सूची का उपयोग करें IPhone 6 और 6 प्लस पर ऐप्स के लिए मूल समाधान कैसे सक्षम करें? दो तालिकाओं के बीच अंतर वापसी करने के लिए एसक्यूएल क्वेरी जेएसपी के साथ फाइलों में निहित निर्देश शामिल हैं, जेएसपी में शामिल कार्रवाई और जेएसपी टैग फाइलों का उपयोग करने में क्या अंतर है? ओवरराइडिंग के लिए सर्वोत्तम प्रथाएं एक्वल: और हैश जावास्क्रिप्ट: ब्राउज़र खिड़की नीचे स्क्रॉल किया गया है कि कैसे पता लगाने के लिए? टाइपस्क्रिप्ट में स्ट्रिंग मानों के साथ एक एन्यूम बनाएं स्मृति त्रुटि छवि व्यू समस्या से बाहर '/' का उपयोग किए बिना प्रभाग एंड्रॉइड पर उपयोगकर्ता के वर्तमान स्थान को प्राप्त करने का सरलतम और सबसे मजबूत तरीका क्या है?

सी # में हार्डवेयर-आईडी को तेजी से कैसे प्राप्त करें?

मुझे अपने प्रोग्राम में एक हार्डवेयर आईडी के लिए लाइसेंस टाई करने की ज़रूरत है मैं WMI का उपयोग करने की कोशिश की, लेकिन यह अभी भी धीमा है

मुझे, उदाहरण के लिए, सीपीयू, एचडीडी, और मदरबोर्ड जानकारी की आवश्यकता है

वेब के समाधान से एकत्रित समाधान "सी # में हार्डवेयर-आईडी को तेजी से कैसे प्राप्त करें?"

अधिक जानकारी के लिए इस लिंक को देखें

निम्न कोड आपको सीपीयू आईडी देगा:

नेमस्पेस आवश्यक System.Management

 var mbs = new ManagementObjectSearcher("Select ProcessorId From Win32_processor"); ManagementObjectCollection mbsList = mbs.Get(); string id = ""; foreach (ManagementObject mo in mbsList) { id = mo["ProcessorId"].ToString(); break; } 

हार्ड डिस्क आईडी और मदरबोर्ड आईडी विवरण के लिए यह लिंक देखें

इस प्रक्रिया को गति देने के लिए, सुनिश्चित करें कि आप SELECT * उपयोग नहीं करते हैं, लेकिन केवल आपको जो वास्तव में आवश्यकता है उसे चुनें। का SELECT * केवल विकास के दौरान जब आप यह पता लगाने की कोशिश करें कि आप किसका उपयोग करना चाहते हैं, क्योंकि तब क्वेरी को पूरा करने में अधिक समय लगेगा।

मैं यहां एक ही चीज़ की तलाश कर रहा था और मुझे एक और हल मिला। यदि आप लोग रुचि रखते हैं तो मैं इस वर्ग को साझा करता हूं:

 using System; using System.Management; using System.Security.Cryptography; using System.Security; using System.Collections; using System.Text; namespace Security { /// <summary> /// Generates a 16 byte Unique Identification code of a computer /// Example: 4876-8DB5-EE85-69D3-FE52-8CF7-395D-2EA9 /// </summary> public class FingerPrint { private static string fingerPrint = string.Empty; public static string Value() { if (string.IsNullOrEmpty(fingerPrint)) { fingerPrint = GetHash("CPU >> " + cpuId() + "\nBIOS >> " + biosId() + "\nBASE >> " + baseId() //+"\nDISK >> "+ diskId() + "\nVIDEO >> " + videoId() +"\nMAC >> "+ macId() ); } return fingerPrint; } private static string GetHash(string s) { MD5 sec = new MD5CryptoServiceProvider(); ASCIIEncoding enc = new ASCIIEncoding(); byte[] bt = enc.GetBytes(s); return GetHexString(sec.ComputeHash(bt)); } private static string GetHexString(byte[] bt) { string s = string.Empty; for (int i = 0; i < bt.Length; i++) { byte b = bt[i]; int n, n1, n2; n = (int)b; n1 = n & 15; n2 = (n >> 4) & 15; if (n2 > 9) s += ((char)(n2 - 10 + (int)'A')).ToString(); else s += n2.ToString(); if (n1 > 9) s += ((char)(n1 - 10 + (int)'A')).ToString(); else s += n1.ToString(); if ((i + 1) != bt.Length && (i + 1) % 2 == 0) s += "-"; } return s; } #region Original Device ID Getting Code //Return a hardware identifier private static string identifier (string wmiClass, string wmiProperty, string wmiMustBeTrue) { string result = ""; System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass); System.Management.ManagementObjectCollection moc = mc.GetInstances(); foreach (System.Management.ManagementObject mo in moc) { if (mo[wmiMustBeTrue].ToString() == "True") { //Only get the first one if (result == "") { try { result = mo[wmiProperty].ToString(); break; } catch { } } } } return result; } //Return a hardware identifier private static string identifier(string wmiClass, string wmiProperty) { string result = ""; System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass); System.Management.ManagementObjectCollection moc = mc.GetInstances(); foreach (System.Management.ManagementObject mo in moc) { //Only get the first one if (result == "") { try { result = mo[wmiProperty].ToString(); break; } catch { } } } return result; } private static string cpuId() { //Uses first CPU identifier available in order of preference //Don't get all identifiers, as it is very time consuming string retVal = identifier("Win32_Processor", "UniqueId"); if (retVal == "") //If no UniqueID, use ProcessorID { retVal = identifier("Win32_Processor", "ProcessorId"); if (retVal == "") //If no ProcessorId, use Name { retVal = identifier("Win32_Processor", "Name"); if (retVal == "") //If no Name, use Manufacturer { retVal = identifier("Win32_Processor", "Manufacturer"); } //Add clock speed for extra security retVal += identifier("Win32_Processor", "MaxClockSpeed"); } } return retVal; } //BIOS Identifier private static string biosId() { return identifier("Win32_BIOS", "Manufacturer") + identifier("Win32_BIOS", "SMBIOSBIOSVersion") + identifier("Win32_BIOS", "IdentificationCode") + identifier("Win32_BIOS", "SerialNumber") + identifier("Win32_BIOS", "ReleaseDate") + identifier("Win32_BIOS", "Version"); } //Main physical hard drive ID private static string diskId() { return identifier("Win32_DiskDrive", "Model") + identifier("Win32_DiskDrive", "Manufacturer") + identifier("Win32_DiskDrive", "Signature") + identifier("Win32_DiskDrive", "TotalHeads"); } //Motherboard ID private static string baseId() { return identifier("Win32_BaseBoard", "Model") + identifier("Win32_BaseBoard", "Manufacturer") + identifier("Win32_BaseBoard", "Name") + identifier("Win32_BaseBoard", "SerialNumber"); } //Primary video controller ID private static string videoId() { return identifier("Win32_VideoController", "DriverVersion") + identifier("Win32_VideoController", "Name"); } //First enabled network card ID private static string macId() { return identifier("Win32_NetworkAdapterConfiguration", "MACAddress", "IPEnabled"); } #endregion } } 

मैं इसके लिए कोई क्रेडिट नहीं लेगा क्योंकि मैं इसे यहां पाया था । यह मेरे लिए अपेक्षा की तुलना में तेज़ी से काम किया ग्राफ़िक कार्ड, मैक और ड्राइव आईडी के बिना मुझे अनन्य आईडी लगभग 2-3 सेकंड में मिला। इसके बाद के संस्करण के साथ मैं इसे लगभग 4-5 सेकंड में मिला।

निम्नलिखित उत्तर इस संबंधित एक संबंधित (अधिक सामान्य) प्रश्न से प्रेरित था।

रजिस्ट्री कुंजी में MachineGuid मान को पढ़ने के लिए तरीका है HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography यह मान ओएस स्थापना के दौरान उत्पन्न होता है।

इस दृष्टिकोण से हार्डवेयर-आईडी प्रति मशीन की विशिष्टता के आसपास कुछ तरीके हैं। एक विधि रजिस्ट्री मान को संपादित कर रहा है, लेकिन इसके बाद उपयोगकर्ता के मशीन पर जटिलताओं का कारण होगा। एक अन्य तरीका एक ड्राइव छवि को क्लोन करना है जो MachineGuid मान की नकल करेगा।

हालांकि, कोई भी तरीका हैक-सबूत नहीं है और यह निश्चित रूप से सामान्य उपयोगकर्ताओं के लिए काफी अच्छा होगा। प्लस तरफ, यह दृष्टिकोण त्वरित रूप से प्रदर्शन-वार और कार्यान्वयन करना आसान है।

 public string GetMachineGuid() { string location = @"SOFTWARE\Microsoft\Cryptography"; string name = "MachineGuid"; using (RegistryKey localMachineX64View = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)) { using (RegistryKey rk = localMachineX64View.OpenSubKey(location)) { if (rk == null) throw new KeyNotFoundException( string.Format("Key Not Found: {0}", location)); object machineGuid = rk.GetValue(name); if (machineGuid == null) throw new IndexOutOfRangeException( string.Format("Index Not Found: {0}", name)); return machineGuid.ToString(); } } } 

यहां एक DLL दिखाया गया है:
* हार्ड ड्राइव आईडी (ड्राइव की आईडीई इलेक्ट्रॉनिक चिप में लिखी गई अद्वितीय हार्डवेयर सीरियल नंबर)
* विभाजन आईडी (खंड सीरियल नंबर)
* सीपीयू आईडी (अद्वितीय हार्डवेयर आईडी)
* सीपीयू विक्रेता
* सीपीयू चलने की गति
* सीपीयू सैद्धांतिक गति
* मेमोरी लोड (प्रतिशत (%) में प्रयुक्त कुल स्मृति)
* कुल भौतिक (बाइट्स में कुल भौतिक मेमोरी)
* शारीरिक लाभ (भौतिक मेमोरी बाइट्स में छोड़ दिया गया है)
* कुल पृष्ठफाइल (बाइट्स में कुल पृष्ठ फ़ाइल)
* उपलब्ध पेजफ़ाइल (बाइट में छोड़ा गया पृष्ठ फ़ाइल)
* कुल वर्चुअल (बाइट्स में कुल वर्चुअल मेमोरी)
* उपलब्ध वर्चुअल (वर्चुअल मेमोरी बाइट्स में छोड़ दिया गया है)
* बीआईओएस अद्वितीय पहचान संख्याबाइसोडेट
* बायोस अनन्य पहचान संख्याबाइवस्सियन
* बायोस अनन्य पहचान संख्या BiosProductID
* बायोस अनन्य पहचान संख्याबॉइसविडियो

(मूल वेब साइट से प्राप्त पाठ)
यह सी # के साथ काम करता है

यह कोड काम नहीं करता जब तक कि आप इस चरणों का पालन न करें

सिस्टम को संदर्भ जोड़ें। प्रबंधन असेंबली।

इसके लिए आपको करना होगा:

  1. प्रोजेक्ट टैब पर जाएं

  2. जोड़ें संदर्भ पर क्लिक करें

  3. नेट टैब पर क्लिक करें

  4. सिस्टम चुनें। प्रबंधन और प्रेस ठीक है