दिलचस्प पोस्ट
समानांतर.फोरएच बनाम टास्क.रुन और टास्क.जब सभी Std :: regex_match और std :: regex_search के बीच का अंतर? अंडरस्कोर या अंडरस्कोर करने के लिए नहीं, यह सवाल है कन्स्ट्रक्टर एक अशक्त वस्तु वापस कर सकता है? स्टोरीबोर्ड लॉन्ग स्क्रीन के लिए सर्वोत्तम प्रथाएं, लॉगआउट पर डेटा के समाशोधन को संभालने मैं सी में फ़ाइल का आकार कैसे प्राप्त करूं? बहु-लाइन टिप्पणियां निकालें UrlScan बिना Azure / IIS7 में अत्यधिक HTTP प्रतिक्रिया शीर्षकों को हटाने / छिपाना / अक्षम करना रूबी – वैरिएबल का नाम प्रिंट करें और उसके वैल्यू के अनुसार सीएफएलएफ के साथ एलएफ़ की जगह जीआईटी SQLite डेटाबेस में अर्रे सूची सहेज रहा है jQuery मोबाइल / एमवीसी: रीडायरेक्ट टाईएक्शन के साथ बदलने के लिए ब्राउज़र यूआरएल प्राप्त करना R: एक्स, वाई, जेड से एक 3 डी की सतह का प्लॉटिंग अजगर का उपयोग करके किसी अन्य कार्यक्रम के मानक आउटपुट को बन्द न करें अपवादों को प्राप्त किए बिना मैं यह सरल महूत कार्यक्रम कैसे बनाऊँ / चला सकता हूं?

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

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

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

Solutions Collecting From Web of "सी # में हार्डवेयर-आईडी को तेजी से कैसे प्राप्त करें?"

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

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

नेमस्पेस आवश्यक 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. सिस्टम चुनें। प्रबंधन और प्रेस ठीक है