#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
// 소켓 함수 오류 출력
void err_display(char *msg)
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER|
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpMsgBuf, 0, NULL);
printf("[%s] %s", msg, (LPCTSTR)lpMsgBuf);
LocalFree(lpMsgBuf);
}
BOOL GetIPAddr(char *name,IN_ADDR *addr)
{
char alises[100];
int i=0,j=0;
HOSTENT *ptr = gethostbyname(name);
if(ptr == NULL){
err_display("gethostbyname()");
return FALSE;
}
while(ptr->h_addr_list[i])
{
memcpy(addr,ptr->h_addr_list[i],ptr->h_length);
printf("IP 주소 = %s\n", inet_ntoa(*addr));
i++;
}
while(ptr->h_aliases[j])
{
strcpy(alises,ptr->h_aliases[j]);
printf("별명 = %s\n",alises);
j++;
}
return TRUE;
}
int main(int argc, char* argv[])
{
WSADATA wsa;
if(WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
return -1;
IN_ADDR addr;
if(GetIPAddr("www.daum.co.kr", &addr))
WSACleanup();
return 0;
}