NCB nInfo;
memset(&nInfo,0,sizeof(NCB));
nInfo.ncb_command=NCBRESET;
nInfo.ncb_lana_num=0;
Netbios(&nInfo);
    
ADAPTER_STATUS AdaInfo;
nInfo.ncb_command=NCBASTAT;
nInfo.ncb_lana_num=0;
nInfo.ncb_buffer=(unsigned char *)&AdaInfo;
nInfo.ncb_length=sizeof(ADAPTER_STATUS);
strncpy((char*)nInfo.ncb_callname,"*",NCBNAMSZ); Netbios(&nInfo); CString macAddr;
macAddr.Format("%02X-%02X-%02X-%02X-%02X-%02X",AdaInfo.adapter_address[0],AdaInfo.adapter_address[1],AdaInfo.adapter_address[2],AdaInfo.adapter_address[3],AdaInfo.adapter_address[4],AdaInfo.adapter_address[5]);
    m_Mac.SetWindowText(macAddr);

解决方案 »

  1.   

    你这个方法没用过
    提供一个:
    char * General::GetMacAddr()
    {
    PIP_ADAPTER_INFO pAdapterInfo;
    PIP_ADAPTER_INFO pAdapter = NULL;
    DWORD dwRetVal = 0;
    pAdapterInfo = (IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO));
    ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
    char mac[17] = {0};
    if(GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS)
    {
    GlobalFree(pAdapterInfo);
    pAdapterInfo = (IP_ADAPTER_INFO*)malloc(ulOutBufLen);
    }
    if((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
    {
    pAdapter = pAdapterInfo;
    while(pAdapter)
    {
    //pAdapter->Description中包含"PCI"为:物理网卡
    //pAdapter->Type是71为:无线网卡
    //if(strstr(pAdapter->Description, "PCI") > 0 || pAdapter->Type == 71)
    {
    //printf("------------------------------------------------------------n");
    //printf("AdapterName:t%sn",pAdapter->AdapterName);
    //printf("AdapterDesc:t%sn",pAdapter->Description);
    //printf("AdapterAddr:t");
    for(UINT i=0; i < pAdapter->AddressLength; i++)
    {
    char tmp[2] = {0};
    sprintf(tmp,"%02X",pAdapter->Address[i]);
    strcat(mac,tmp);
    }
    //printf("AdapterType:t%dn", pAdapter->Type);
    //printf("IPAddress:t%sn", pAdapter->IpAddressList.IpAddress.String);
    //printf("IPMask:t%sn", pAdapter->IpAddressList.IpMask.String);
    }
    //  if(!isLocalAdapter(pAdapter->AdapterName))
    //  {
    pAdapter=pAdapter->Next;
    //  }
    }
    }
    else
    {
    GlobalFree(pAdapterInfo);
    return "000000000000";
    }
    // GlobalFree(pAdapterInfo);
    free(pAdapterInfo);
    return mac;
    //return NULL;
    }