एक सामान्य विधि यूयूआईडी से बिट्स का उपयोग कर रही है, लेकिन यह पूरी तरह से भरोसेमंद नहीं है। उदाहरण के लिए, यह उस मशीन पर भी एक मूल्य लौटाएगा जिसमें नेटवर्क एडेप्टर नहीं है।
सौभाग्य से, एक ऐसा तरीका है जो विंडोज के किसी भी उचित संस्करण पर निर्भर करता है। MSDN कहते हैं कि यह केवल वापस Windows 2000 के लिए चला जाता है, लेकिन अगर स्मृति में कार्य करता है, यह भी NT 4 पर काम करता है, चारों ओर सपा 5 शुरू करने, मामले में किसी को भी अभी भी उपयोग कर रहा है NT 4.
#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>
int main() {
IP_ADAPTER_INFO *info = NULL, *pos;
DWORD size = 0;
GetAdaptersInfo(info, &size);
info = (IP_ADAPTER_INFO *)malloc(size);
GetAdaptersInfo(info, &size);
for (pos=info; pos!=NULL; pos=pos->Next) {
printf("\n%s\n\t", pos->Description);
printf("%2.2x", pos->Address[0]);
for (int i=1; i<pos->AddressLength; i++)
printf(":%2.2x", pos->Address[i]);
}
free(info);
return 0;
}
कृपया प्राचीन सी कोड माफ .. ।
स्रोत
2010-01-15 07:48:18
क्या समाधान के लिए अच्छा समाधान? यदि आप लाइसेंसिंग के लिए कुछ अद्वितीय कंप्यूटर पहचानकर्ता उत्पन्न करने का मतलब है तो मैं कहूंगा कि इसे भरोसा नहीं किया जाना चाहिए। क्या होता है जब उपयोगकर्ता नेटवर्क कार्ड बदलता है, 2 कार्ड हैं, कोई नेटवर्क कार्ड नहीं है? – Ash