DWORD Err;
PIP_ADAPTER_INFO pAdapterInfo, pAdapt;
DWORD AdapterInfoSize = 0;
PIP_ADDR_STRING pAddrStr;
//버퍼 사이즈 알아오기
if ((Err = GetAdaptersInfo(NULL, &AdapterInfoSize)) != 0)
{
if (Err != ERROR_BUFFER_OVERFLOW)
{
return FALSE;
}
}
//버퍼 동적 할당
if ((pAdapterInfo = (PIP_ADAPTER_INFO)new BYTE[AdapterInfoSize]) == NULL)
{
return FALSE;
}
//어댑터 정보 얻어오기
if ((Err = GetAdaptersInfo(pAdapterInfo, &AdapterInfoSize)) != 0)
{
return FALSE;
}
pAdapt = pAdapterInfo;
int i=0;
while (pAdapt) -->이반복문에서 랜카드 갯수 만큼 루프를 돌면서 주소값을 얻어옵니다.
{
pAddrStr=&(pAdapt->IpAddressList);
g_sClientinternalsockaddr.bySockaddrcount=(i+1);
while(pAddrStr)
{
g_sClientinternalsockaddr.asockaddr[i].sin_addr.S_un.S_addr=inet_addr(pAddrStr->IpAddress.String);
pAddrStr = pAddrStr->Next;
}
pAdapt = pAdapt->Next;
i++;
}
delete pAdapterInfo;
pAdapterInfo=NULL;
출처 : 데브피아
댓글 없음:
댓글 쓰기