Post List

2015년 1월 15일 목요일

C++ Windows에서 MAC Address 얻기

#include <WinSock.h>
#include <IPHlpApi.h>                       // for GetAdaptersInfo()
#pragma comment(lib, "iphlpapi.lib" )

int _tmain(int argc, _TCHAR* argv[])
{
    char strMac[256];
    DWORD size = sizeof(PIP_ADAPTER_INFO);

    PIP_ADAPTER_INFO Info;
    ZeroMemory(&Info, size);
    int result = GetAdaptersInfo(Info, &size);        // 첫번째 랜카드 MAC address 가져오기
    if (result == ERROR_BUFFER_OVERFLOW// GetAdaptersInfo 메모리가 부족하면 할당하고 재호출
    {
       Info = (PIP_ADAPTER_INFO)malloc(size);
       GetAdaptersInfo(Info, &size);
    }
    if (!Info)        return 0;
    sprintf(strMac, "%0.2X-%0.2X-%0.2X-%0.2X-%0.2X-%0.2X",
       Info->Address[0], Info->Address[1], Info->Address[2], Info->Address[3], Info->Address[4], Info->Address[5]);

    printf(strMac);

    return 0;
}

댓글 없음:

댓글 쓰기