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;
혹은
// 로컬 어드레스를 세트한다.
char recvline[300];
gethostname(recvline, 200);
// 이름으로부터 IP를 얻어낸다.
struct hostent *pHostEnt = gethostbyname(recvline);
if (pHostEnt != NULL)
{
localAddress.Format("%u.%u.%u.%u",
0xff & pHostEnt->h_addr_list[0][0],
0xff & pHostEnt->h_addr_list[0][1],
0xff & pHostEnt->h_addr_list[0][2],
0xff & pHostEnt->h_addr_list[0][3]
);
} else
localAddress = _T("");
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;
혹은
// 로컬 어드레스를 세트한다.
char recvline[300];
gethostname(recvline, 200);
// 이름으로부터 IP를 얻어낸다.
struct hostent *pHostEnt = gethostbyname(recvline);
if (pHostEnt != NULL)
{
localAddress.Format("%u.%u.%u.%u",
0xff & pHostEnt->h_addr_list[0][0],
0xff & pHostEnt->h_addr_list[0][1],
0xff & pHostEnt->h_addr_list[0][2],
0xff & pHostEnt->h_addr_list[0][3]
);
} else
localAddress = _T("");