반응형
MacAddress 및 IP 주소를 가져오는 소스 코드 입니다.
출처: http://blog.daum.net/odega/31
어떤식으로 가져오는지 공부해보고, 구찮으니 가져다 씁시다.
#pragma comment(lib, "Iphlpapi.lib")
#include <Iphlpapi.h>
//성공 1, 실패 0 리턴
BOOL GetIP(CStringArray& strIPArray)
{
CStringA strIPAddress;
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
ULONG ulOutBufLen = sizeof (IP_ADAPTER_INFO);
pAdapterInfo = new IP_ADAPTER_INFO[ulOutBufLen];
if (pAdapterInfo == NULL)
return FALSE;
if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
{
delete pAdapterInfo;
pAdapterInfo = new IP_ADAPTER_INFO[ulOutBufLen];
if (pAdapterInfo == NULL)
return FALSE;
}
if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
{
pAdapter = pAdapterInfo;
while (pAdapter)
{
strIPAddress.Format("%s", pAdapter->IpAddressList.IpAddress.String);
strIPArray.Add(CA2T(strIPAddress));
pAdapter = pAdapter->Next;
}
}
delete pAdapterInfo;
pAdapterInfo = NULL;
return TRUE;
}
//성공 1, 실패 0 리턴
BOOL GetMacAddress(CStringArray& strMacArray, CString strSpecifiedIP)
{
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
ULONG ulOutBufLen = sizeof (IP_ADAPTER_INFO);
pAdapterInfo = new IP_ADAPTER_INFO[ulOutBufLen];
if (pAdapterInfo == NULL)
return FALSE;
if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
{
delete pAdapterInfo;
pAdapterInfo = new IP_ADAPTER_INFO[ulOutBufLen];
if (pAdapterInfo == NULL)
return FALSE;
}
if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
{
pAdapter = pAdapterInfo;
while (pAdapter)
{
CStringA strMacAddress;
strMacAddress.Format("%02X:%02X:%02X:%02X:%02X:%02X",
pAdapter->Address[0],
pAdapter->Address[1],
pAdapter->Address[2],
pAdapter->Address[3],
pAdapter->Address[4],
pAdapter->Address[5]);
CStringA strIPAddress;
strIPAddress.Format("%s", pAdapter->IpAddressList.IpAddress.String);
if(strSpecifiedIP.GetLength() > 0)
{
if(strIPAddress.Find(CT2A(strSpecifiedIP)) >= 0)
{
strMacArray.Add(CA2T(strMacAddress));
break;
}
}
else
strMacArray.Add(CA2T(strMacAddress));
pAdapter = pAdapter->Next;
}
}
delete pAdapterInfo;
pAdapterInfo = NULL;
return TRUE;
}
반응형
'Study > MFC' 카테고리의 다른 글
ComboBox ReadOnly 처리(DropDwon). 수정불가, edit 불가 (0) | 2017.03.26 |
---|---|
win32 환경에서 GDI+ 사용시 빌드에러 (0) | 2016.09.01 |
SubClassing 사용시 동적으로 할당한 컨트롤 SubclassDlgItem Assert문제 (0) | 2015.12.28 |
CTreeCtrl 모든 노드 펼치기 Expand all items (0) | 2015.12.24 |
CTreeCtrl에서 현재 선택된 아이템의 depth 구한기 (2) | 2015.12.11 |
댓글