정리 차원에서 쓴다.
MAC Address 가져오는 방법.
이것을 사용해서 Ethernet인 경우의 MAC address만 출력하는 소스.
급조한것이긴 하지만 개발중인 소스를 올릴수는 없지 않은가? ㅡㅡ;;
PrintToHex은 당연히 데이터를 HEX 로 찍는 함수다.


#include <IPHlpApi.h>
#pragma comment(lib, "iphlpapi.lib")

IP_ADAPTER_INFO
*
GetNetworkAdaptersInfo()
{
   DWORD dwBufLen = 0;
   DWORD dwStatus = GetAdaptersInfo(NULL, &dwBufLen);
   ASSERT(dwStatus == ERROR_BUFFER_OVERFLOW);
   IP_ADAPTER_INFO* pAdapterInfo = (IP_ADAPTER_INFO*)malloc(dwBufLen);
   dwStatus = GetAdaptersInfo(pAdapterInfo, &dwBufLen);
   assert(dwStatus == ERROR_SUCCESS);
   if(dwStatus != ERROR_SUCCESS)
   {
      free(pAdapterInfo);
      return NULL;
   }
   return pAdapterInfo;
}
 
void main()
{
   IP_ADAPTER_INFO* pAdaptersInfoList = GetNetworkAdaptersInfo();
   IP_ADAPTER_INFO* pAdapterInfo = pAdaptersInfoList;
   while(NULL != pAdapterInfo)
   {
      if(MIB_IF_TYPE_ETHERNET == pAdapterInfo->Type) // Ethernet == 6
      {
         PrintToHex(pAdapterInfo->Address, pAdapterInfo->AddressLength);
      }
      pAdapterInfo = pAdapterInfo->Next;
   }
   free(pAdaptersInfoList);
}
 
수정을 여기서 직접 해서 돌려보진 못했는데... 돌아가겠지? ㅡㅡ;


싸이 블로그 백업 [하zi 2008.09.18 14:20]

+ Recent posts