|
한번 해봐야 겠군요... 답변 감사^^
물소리 님이 쓰신 글 :
: 제가 사용하는 방법입니다!
: 한번 해보세여..
:
: #include <Iphlpapi.h>
:
: #define MAC_ADDR_LEN 6
: //----------------------------------------------------------------
: // 변수 선언형태
: int m_iMaxCnt; // 시스템에 설치된 랜카드 수량을 기억할 변수
: BYTE m_pMacAddrInfo[MAX_ADAPTER_ADDRESS_LENGTH][MAC_ADDR_LEN]; // 실제 맥주소 저장 배열
: //----------------------------------------------------------------
: 실제 처리 부분
:
: m_iMaxCnt = 0;
:
: IP_ADAPTER_INFO AdapterInfo[16]; // Allocate information for up to 16 NICs
: DWORD dwBufLen = sizeof(AdapterInfo); // Save memory size of buffer
:
: // Call GetAdapterInfo
: DWORD dwStatus = GetAdaptersInfo(
: AdapterInfo, // [out] buffer to receive data
: &dwBufLen); // [in] size of receive data buffer
:
: if(dwStatus != ERROR_SUCCESS) return; // Verify return value is
: // valid, no buffer overflow
: PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo; // Contains pointer to current adapter info
:
: // 랜카드가 여러개일 경우 까지 처리가능하도록
: for(int i=0; i<MAX_ADAPTER_ADDRESS_LENGTH; i++)
: {
: if(!pAdapterInfo) break;
: memcpy(&m_pMacAddrInfo[m_iMaxCnt++], pAdapterInfo->Address, MAC_ADDR_LEN);
: pAdapterInfo = pAdapterInfo->Next;
: }
: //-----------------------------------------------------------------------
:
: 안성준 님이 쓰신 글 :
: : 질문 드립니다.
: : 아래 코드로 PC 에 장착되어 있는 네트워크 카드의 맥 어드래스를 구하는데 간혹 특정 PC 에서 값이 안 넘어는 현상이 있다고 현장에 납품되어 있는 프로그램에서 보고가 들어오고있는데요 그럴 가능성이 있나요?
: :
: : PC 마다 네트워크 카드가 장착되어 있고 인터넷이 되는건 확실합니다...
: : 혹시 값이 안 넘어올 가능성이 있다면 맥 어드레스를 구할 수 있는 확실한 방법이 또 없을까요?
: :
: : 아시는 분 조언 부탁드립니다..
: :
: :
: : AnsiString s;
: : unsigned char MACData[9];
: :
: : UUID uuid;
: : UuidCreateSequential( &uuid ); // Ask OS to create UUID
: :
: : long sum = 0;
: : long sum2 = 0;
: :
: : for (int i=2; i<8; i++) // Bytes 2 through 7 inclusive are MAC address
: : MACData[i] = uuid.Data4[i];
: :
: : s.sprintf("%x, %x, %x, %x, %x, %x", uuid.Data4[2], uuid.Data4[3], uuid.Data4[4], uuid.Data4[5], uuid.Data4[6], uuid.Data4[7]);
: :
: : ShowMessage(s);
|