C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[63053] Re:네트워크 카드 MAC Address 얻기
물소리 [jasonkrm] 1806 읽음    2010-11-17 17:34
제가 사용하는 방법입니다!
한번 해보세여..

#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);

+ -

관련 글 리스트
63052 네트워크 카드 MAC Address 얻기 안성준 1659 2010/11/17
63053     Re:네트워크 카드 MAC Address 얻기 물소리 1806 2010/11/17
63072         Re:Re:네트워크 카드 MAC Address 얻기 locke 1942 2010/11/23
63058         Re:Re:네트워크 카드 MAC Address 얻기 안성준 1401 2010/11/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.