MAC Address 얻어오기.
GetAdaptersInfo()
퍼옴..
| [출처] MacAddress 맥어드레스 구하기 | 작성자 trts1015 |
//==============================================================
//GetAdaptersInfo를 이용하여 맥어드레스를 얻는 방법입니다.
#include
BOOL GetMacAddress(BYTE* byteMacAddress) {
BOOL bResult = FALSE;
IP_ADAPTER_INFO *p;
ULONG len = 0;
if (GetAdaptersInfo(NULL, &len) == ERROR_BUFFER_OVERFLOW ) {
p = new IP_ADAPTER_INFO[ len ];
GetAdaptersInfo(p, &len);
if (p) {
memcpy(byteMacAddress, p->Address, 6);
bResult = TRUE;
}
delete[] p;
}
return bResult;
}
//————————-
//문자열로 바로 리턴하여주는 함수.
CString GetMacAddress() {
BOOL bResult = FALSE;
IP_ADAPTER_INFO *p;
ULONG len = 0;
PBYTE mac;
CString one, str = _T(“”);
if (GetAdaptersInfo(NULL, &len) == ERROR_BUFFER_OVERFLOW ) {
p = new IP_ADAPTER_INFO[ len ];
GetAdaptersInfo(p, &len);
if (p) {
mac = (PBYTE) p->Address;
len = p->AddressLength;
for(ULONG i=0; i < len; i++){
one.Format(_T(“%02X”), mac[i]);
str += one;
if( i < len-1 ) str += _T(“:”);
}
}
delete[] p;
}
return str;
}
//==============================================================
//————————-
//IP를 이용하여 맥어드레스를 얻는 방법입니다.
//자기자신일경우:GetMacAddress(_T(“*”));
//남일경우:GetMacAddress(_T(“192.168.1.1”));
//————————-
#include
memset( &Ncb, 0, sizeof(Ncb) );
Ncb.ncb_command = NCBENUM;
Ncb.ncb_buffer = (UCHAR *)&lenum;
Ncb.ncb_length = sizeof(lenum);
uRetCode = Netbios( &Ncb );
for(i=0; i < lenum.length ;i++)
{
memset( &Ncb, 0, sizeof(Ncb) );
Ncb.ncb_command = NCBRESET;
Ncb.ncb_lana_num = lenum.lana[i];
uRetCode = Netbios( &Ncb );
memset( &Ncb, 0, sizeof (Ncb) );
Ncb.ncb_command = NCBASTAT;
Ncb.ncb_lana_num = lenum.lana[i];
strcpy( (char*)Ncb.ncb_callname, strIP );
Ncb.ncb_buffer = (unsigned char *) &Adapter;
Ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios( &Ncb );
if ( uRetCode == 0 )
{
string.Format(“%02X:%02X:%02X:%02X:%02X:%02X”,
Adapter.adapter_address[0],
Adapter.adapter_address[1],
Adapter.adapter_address[2],
Adapter.adapter_address[3],
Adapter.adapter_address[4],
Adapter.adapter_address[5] );
strOutput += string ;
}
}
return strOutput;
}
//==============================================================
//아래소스는 GetAdaptersInfo 함수를 사용하지 못하는 특정한 CE 플렛폼에서 사용하였음.
//————————-
//KernelIoControl를 이용하여 맥어드레스를 얻는 방법입니다.
//————————-
#include