2010-01-15 7 views
5

मैंने सुना है कि Winpcap की मेरी वर्तमान लाइब्रेरी के साथ यह संभव नहीं है।मशीन का मैक पता प्राप्त करना - अच्छा समाधान?

क्या यह वाकई सच है? मैं नेट पर कई उदाहरण देखता हूं लेकिन फिर यह कहता है कि "यह काम नहीं करता है"।

स्थानीय मशीन का मैक पता प्राप्त करने का सबसे अच्छा तरीका क्या है?

+0

क्या समाधान के लिए अच्छा समाधान? यदि आप लाइसेंसिंग के लिए कुछ अद्वितीय कंप्यूटर पहचानकर्ता उत्पन्न करने का मतलब है तो मैं कहूंगा कि इसे भरोसा नहीं किया जाना चाहिए। क्या होता है जब उपयोगकर्ता नेटवर्क कार्ड बदलता है, 2 कार्ड हैं, कोई नेटवर्क कार्ड नहीं है? – Ash

उत्तर

6

एक सामान्य विधि यूयूआईडी से बिट्स का उपयोग कर रही है, लेकिन यह पूरी तरह से भरोसेमंद नहीं है। उदाहरण के लिए, यह उस मशीन पर भी एक मूल्य लौटाएगा जिसमें नेटवर्क एडेप्टर नहीं है।

सौभाग्य से, एक ऐसा तरीका है जो विंडोज के किसी भी उचित संस्करण पर निर्भर करता है। 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; 
} 

कृपया प्राचीन सी कोड माफ .. ।

+0

यह एक परियोजना में स्वयं ही काम कर रहा था लेकिन प्रोजेक्ट में Winpcap के साथ मैं इसका उपयोग करने की कोशिश कर रहा था इसमें netioapi.h में बहुत से संकलक त्रुटियां थीं – bobber205

5

कंप्यूटर पर> "एनआईसी" होने पर मैक पता जैसी कोई चीज़ नहीं है। अधिक जानकारी के लिए आप WMI, http://techsupt.winbatch.com/TS/T000001002F19.html का उपयोग करके इस जानकारी से पूछ सकते हैं

+0

लिंक अब मर चुका है – malat

संबंधित मुद्दे