| [ windows ] in KIDS 글 쓴 이(By): lavic (라_빅) 날 짜 (Date): 2001년 8월 10일 금요일 오전 11시 51분 46초 제 목(Title): Re: [급질]PC의 CPU_ID및 MAC_Add 확인 방� Visual C++에서 mac address를 얻기 위해서는 Netbios()를 사용하면 됩니다. 다음 소스를 참고하세요.... bool GetAdapterInfo(int adapter_num, AnsiString &mac_addr) { // Reset the LAN adapter so that we can begin querying it NCB Ncb; memset(&Ncb, 0, sizeof(Ncb)); Ncb.ncb_command = NCBRESET; Ncb.ncb_lana_num = adapter_num; if (Netbios(&Ncb) != NRC_GOODRET) { mac_addr = "bad (NCBRESET): "; mac_addr += Ncb.ncb_retcode; return false; } // Prepare to get the adapter status block bzero(&Ncb,sizeof(Ncb)); Ncb.ncb_command = NCBASTAT; Ncb.ncb_lana_num = adapter_num; strcpy((char *) Ncb.ncb_callname, "*"); struct ASTAT { ADAPTER_STATUS adapt; NAME_BUFFER NameBuff[30]; } Adapter; bzero(&Adapter,sizeof(Adapter)); Ncb.ncb_buffer = (unsigned char *)&Adapter; Ncb.ncb_length = sizeof(Adapter); // Get the adapter's info and, if this works, return it in standard, // colon-delimited form. if (Netbios(&Ncb) == 0) { char acMAC[18]; sprintf(acMAC, "%02X:%02X:%02X:%02X:%02X:%02X", int (Adapter.adapt.adapter_address[0]), int (Adapter.adapt.adapter_address[1]), int (Adapter.adapt.adapter_address[2]), int (Adapter.adapt.adapter_address[3]), int (Adapter.adapt.adapter_address[4]), int (Adapter.adapt.adapter_address[5])); mac_addr = acMAC; return true; } else { mac_addr = "bad (NCBASTAT): "; mac_addr += Ncb.ncb_retcode; return false; } } |