gethostbyname
함수의 이름 대로 이름에서 host 주소를 얻어 올 수 있는 함수다. 그렇다고 해서 꼭 IP주소만을 가져 오느냐 하면 그것도 아니다. struct hostent 라는 구조체를 이요해서 호스트의 대표이름, 별명, 주소의 타입, 주소 리스트들을 얻어 올수 있다. IPv4에서만 정상적으로 돌아가는 함수이며 다음 POSIX에서 퇴출 당할 가능성이 있다고는 하지만 여지껏 일반적으로 잘 사용 되어져 왔던 함수다.
이 함수는 다른 함수들과 달리 errno를 셋팅하지 않는다. 대신 h_errno를 사용한다. h_errno에서 문자열로 표현된 에러를 얻기 위해서는 hstrerror() 함수를 사용한다.
함수의 이름 대로 이름에서 host 주소를 얻어 올 수 있는 함수다. 그렇다고 해서 꼭 IP주소만을 가져 오느냐 하면 그것도 아니다. struct hostent 라는 구조체를 이요해서 호스트의 대표이름, 별명, 주소의 타입, 주소 리스트들을 얻어 올수 있다. IPv4에서만 정상적으로 돌아가는 함수이며 다음 POSIX에서 퇴출 당할 가능성이 있다고는 하지만 여지껏 일반적으로 잘 사용 되어져 왔던 함수다.
#include <netdb.h>
extern int h_errno;
struct hostent *gethostbyname(const char *name);
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, if IPv4 4 bytes, IPv6 16 bytes return*/
char **h_addr_list; /* list of IP addresses */
}
#define h_addr h_addr_list[0] /* for backward compatibility */
extern int h_errno;
struct hostent *gethostbyname(const char *name);
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, if IPv4 4 bytes, IPv6 16 bytes return*/
char **h_addr_list; /* list of IP addresses */
}
#define h_addr h_addr_list[0] /* for backward compatibility */
이 함수는 다른 함수들과 달리 errno를 셋팅하지 않는다. 대신 h_errno를 사용한다. h_errno에서 문자열로 표현된 에러를 얻기 위해서는 hstrerror() 함수를 사용한다.