gethostbyname() 도메인 이름으로 hostent 정보를 구함
Network/Network 2011. 12. 1. 19:43설명
주어진 호스트 name 에 상응하는 hostent 타입의 구조체를 반환한다. hostent 구조는 아래와 같습니다.
struct hostent { char *h_name; /* Official name of host. */ char **h_aliases; /* Alias list. */ int h_addrtype; /* Host address type. */ int h_length; /* Length of address. */ char **h_addr_list; /* List of addresses from name server. */ #define h_addr h_addr_list[0] /* Address, for backward compatibility. */ };
헤더 | netdb.h | |||||
형태 | struct hostent *gethostbyname(const char *name); | |||||
인수 |
| |||||
반환 |
|
예제
forum.falinux.com의 IP주소를 구합니다.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> int main( void) { struct hostent *host_entry; int ndx; host_entry = gethostbyname( "forum.falinux.com"); if ( !host_entry) { printf( "gethostbyname() 실행 실패/n"); exit( 1); } for ( ndx = 0; NULL != host_entry->h_addr_list[ndx]; ndx++) printf( "%s\n", inet_ntoa( *(struct in_addr*)host_entry->h_addr_list[ndx]));
/* // 바이너리(32bit 주소형태) long net_addr; memcpy(&net_addr, host_entry->h_addr, host_entry->h_length); */
return 0; }
]$ gcc gethostbyname.c ]$ ./a.out 211.239.155.97 ]$
'Network > Network' 카테고리의 다른 글
IP Subnet (0) | 2011.12.02 |
---|---|
멀티캐스트 원리 (0) | 2011.12.02 |
inet_addr, inet_aton (1) | 2011.12.01 |
언제 shutdown()를 써야 하는가? (0) | 2011.11.23 |
소켓 함수 모음 (0) | 2011.11.11 |