프로그래머의 삶 Programmer's Life/C & C++

NameResolution

Oliver's World 2008. 11. 5. 11:16
728x90

#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;
}

728x90