मैं लाइसेंसिंग उद्देश्यों के लिए विशिष्ट रूप से सिस्टम की पहचान (अधिक या कम) करने की कोशिश कर रहा हूं। मैंने इस कार्य के लिए कंप्यूटर के ऑन-बोर्ड नेटवर्क एडेप्टर के मैक पते को चुना है, क्योंकि मैं यह सुनिश्चित कर सकता हूं कि इस सॉफ़्टवेयर को चलाने वाले प्रत्येक cmputer में वास्तव में एक है, और यह बदलते समय पुनः सक्रियण से बचाता है। हार्डड्राइवविश्वसनीय रूप से कंप्यूटर के ऑन-बोर्ड नेटवर्क एडाप्टर के मैक पते को कैसे प्राप्त करें?
हालांकि, मुझे ऑनबोर्ड नेटवर्क एडेप्टर को विश्वसनीय रूप से पहचानने में समस्याएं आ रही हैं।
"Win32_NetworkAdapter कॉन्फ़िगरेशन" प्रबंधन क्लास का उपयोग करके, मुझे अपने पसंदीदा पते सहित मैक पते का पूरा पता मिल सकता है, लेकिन मुझे विंडोज या वायरस स्कैनर द्वारा स्थापित वर्चुअल एडाप्टर से ऑनबोर्ड को अलग करने का कोई तरीका नहीं मिला है। हालांकि, इस सूची को आदेश दिया जा रहा है। मैक एड्रेस में दिलचस्पी है (मेरी मशीन पर) अन्य (वास्तविक) नेटवर्क एडेप्टर से पहले सूचीबद्ध है। (सूची इंटरफेस सूचकांक द्वारा आदेश दिया गया है।)
NetworkInterface.GetAllNetworkInterfaces()
का उपयोग करना, मुझे लगता है कि मैं .NetworkInterfaceType == NetworkInterfaceType.Ethernet
पर छान कर वास्तविक नेटवर्क एडेप्टर पहचान कर सकते हैं, लेकिन इस सूची अव्यवस्थित हो रहा है (एक अतिरिक्त नेटवर्क कार्ड onboards एक से पहले दिखाई देता है)।
पहले वास्तविक नेटवर्क कार्ड की सूची प्राप्त करने के लिए दूसरी विधि का उपयोग कर रहा है और फिर पहली सूची में उपस्थिति के क्रम में उन्हें मैक पते की पहचान करने का एक विश्वसनीय तरीका है जिसे मैं ढूंढ रहा हूं? क्या पहली सूची में इंटरफ़ेस इंडेक्स बदल सकता है? मुझे आपके विचार सुनकर खुशी होगी!
धन्यवाद!
पीएस .: मुझे पता है कि मैक पता आसानी से बदला जा सकता है, लेकिन मैं इसके साथ रह सकता हूं। मैं ग्राहक के साथ नहीं रह सकता, जो कि डब्लूएलएएन स्टिक डालने के बाद सॉफ़्टवेयर का उपयोग करने में सक्षम नहीं है =)
इंटरफेसटाइप ईथरनेट के सभी मैक पते कैश क्यों नहीं करें? –
@rdkleine: यदि कोई अन्य नेटवर्क एडेप्टर जोड़ा जाता है तो यह सक्रियण को तोड़ देगा। – Jens
आप सभी कैश किए गए सभी एडाप्टर की तुलना कर सकते हैं। एक जोड़ी पर्याप्त है, है ना? –