MAC-Adresse auslesen



  • Hallo,

    ich habe zwei Netzwerkkarten in meinem Rechner und folgende Funktion:

    CString CMAGDlg::GetMACAddress(int adapternumber)
    {
    int nAdapterCount = 0; 
    ULONG ip; 
    ULONG buflen; 
    PIP_ADAPTER_INFO pAdInfo = NULL; 
    PIP_ADAPTER_INFO pAdInfo_c = NULL; 
    
    buflen = 0; 
    GetAdaptersInfo(pAdInfo, &buflen);
    pAdInfo = (struct _IP_ADAPTER_INFO *)new UCHAR[buflen+1]; 
    pAdInfo_c = pAdInfo; 
    if (GetAdaptersInfo(pAdInfo, &buflen) == ERROR_SUCCESS) 
    { 
    	do 
    	{ 
    		ip = inet_addr(pAdInfo->IpAddressList.IpAddress.String); 
    		if ((ip != 0)&&(ip != 0x7f000001)) 
    		{ 
    			nAdapterCount++; 
    			if ((nAdapterCount == adapternumber)||(adapternumber == 0)) 
    			{ 
    				if (pAdInfo->AddressLength != 0) 
    				{ 
    					CString macstr; 
    					for (int i = 0; i < (int)pAdInfo->AddressLength; i++) 
    					{ 
    						CString temp; 
    						temp.Format(_T(" %02X"), pAdInfo->Address[i]); 
    						macstr += temp; 
    					} 
    					delete pAdInfo; 
    					return macstr; 
    				} 
    			} 
    		}
    	} 
    	while ((pAdInfo->Next != NULL)&&((pAdInfo = pAdInfo->Next) != pAdInfo)); 
    	} 
    	delete pAdInfo_c; 
    	return _T("");
    }
    

    und egal welche "adapternummer" (0 oder 1) ich übergebe, er ließt mir nur die MAC-Adresse der einen Netzwerkkarte aus. Deaktivier ich diese kommt die MAC-Adresse der anderen. Ich find nicht raus wo der Wurm drin ist.

    Im Voraus vielen Dank.

    Gruss Sven


Anmelden zum Antworten