GETHOSTBYNAME

Section: ������ ���α׷��� �Ŵ��� (3)
Updated: 2000�� 8�� 12��
Index
Return to Main Contents
 

�̸�

gethostbyname, gethostbyaddr, sethostent, endhostent, herror, hstrerror - ��Ʈ�� ȣ��Ʈ ��Ʈ���� �����´�.  

����

#include <netdb.h>
extern int h_errno;

struct hostent *gethostbyname(const char *name);

#include <sys/socket.h>        /* for AF_INET */
struct hostent *gethostbyaddr(const char *addr,
  int len, int type);

void sethostent(int stayopen);

void endhostent(void);

void herror(const char *s);

const char * hstrerror(int err);
 

����

gethostbyname() �Լ��� �־��� ȣ��Ʈ name �� �����ϴ� hostent Ÿ���� ����ü�� ��ȯ�Ѵ�. ���⼭ name�� ȣ��Ʈ �̸��̰ų� ǥ�� �� ǥ����� IPv4 �ּ��̰ų�, �ݷ�(�׸��� �� ǥ����� ����)ǥ����� IPv6�̴�. (IPv6�� ���� ����� ���� RFC1884�� �����ض�.) ���� name �� IPv4�� IPv6 �ּҶ��, � ����� �������� �ʰ� gethostbyname()�� �ܼ��� name �� h_name �ʵ忡 �����ϰ� �ش� struct in_addr �� ��ȯ�ϴ� hostent ����ü�� h_addr_list[0] �ʵ忡 �����Ѵ�. ���� name�� ������ ������ �ʰ� ȯ�� ���� HOSTALIASES�� �����Ǿ� �ִٸ�, HOSTALIASES�� ����Ű�� ����̽� ������ name�� ���� �켱 Ž���ȴ�. (���� ������ ���� hostname(7)�� �����ض�.) ���� �����ΰ� ���� �������� name�� ������ ������ �ʴ´ٸ� Ž���ȴ�.

gethostbyaddr() �Լ��� ���� len �׸��� �ּ� Ÿ�� type�� ȣ��Ʈ �ּ� addr�� �ش��ϴ� hostent ����ü�� �����Ѵ�. �����ϰ� ��ȿ�� �ּ� Ÿ���� ���� AF_INET�̴�.

���� stayopen�� ��(1)�̶��, sethostent() �Լ��� ����� TCP ������ ���� ���� ���Ǹ� ���� ���Ǿ�� �Ѵٴ°��� ����Ų��. �׸��� ������ �������� ���Ǹ� ���� ��� ���� �־�� �Ѵ�. �׷��� ������, ���� ���� ���Ǹ� UDP �����ͱ׷��� ����� ���̴�.

endhostent() �Լ��� ���� ���� ���Ǹ� ���� TCP ������ ����� ������.

(����) herror() �Լ��� stderr�� ���� ���� h_errno �� �����ϴ� ���� �޼����� ����Ѵ�.

(����) hstrerror() �Լ��� ����(���������� h_errno) �ѹ��� ������ �����ϴ� �޼����� ��ȯ�Ѵ�.

������ ���� ���Ǵ� gethostbyname() �� ���� ����Ǹ� gethostbyaddr()�� /etc/host.conf�� �ִ� order������ ���뿡 �����Ͽ� /etc/hosts���� ������ �̾Ƴ� ���� ���� named(8)�� �Ϻγ� ����� ���հ� ��Ʈ�� ���� ���� (NIS �Ǵ� YP)�� ����Ѵ�. ( resolv+(8)�� �����ض�.) �⺻ �ൿ�� /etc/hosts ������ named(8)�� �����ϴ� ���̴�.

hostent ����ü�� ������ ���� <netdb.h>�� ���ǵǾ� �ִ�:

struct hostent {
        char    *h_name;        /* ȣ��Ʈ�� ���� �̸� */
        char    **h_aliases;    /* ��Ī ����Ʈ */
        int     h_addrtype;     /* ȣ��Ʈ �ּ� Ÿ�� */
        int     h_length;       /* �ּ��� ���� */
        char    **h_addr_list;  /* �ּ� ����Ʈ */
}
#define h_addr  h_addr_list[0]  /* �� �������� ȣȯ�� ���� */

hostent ����ü�� �����:

h_name
ȣ��Ʈ�� �������� �̸�
h_aliases
ȣ��Ʈ�� ���� �η� ������ �������� �̸��� �迭
h_addrtype
�ּ� Ÿ��; ����� �׻� AF_INET �̴�.
h_length
����Ʈ�� �ּ��� ����.
h_addr_list
��Ʈ�� ����Ʈ ������ ȣ��Ʈ�� ���� �η� ����� ��Ʈ�� �ּ� �迭
h_addr
�������� ȣȯ�� ���� h_addr_list�� ó�� �ּ�
 

��ȯ��

gethostbyname() �׸��� gethostbyaddr() �Լ��� hostent ����ü�� ��ȯ�ϰų� ���� ������ �߻��Ѵٸ� NULL �����͸� ��ȯ�Ѵ�. ������, h_errno ������ ���� �ѹ��� ������.  

����

���� h_errno�� ���� ������ ������:
HOST_NOT_FOUND
������ ȣ��Ʈ�� �˷����� �ʾҴ�.
NO_ADDRESS �� NO_DATA
�䱸�� �̸��� ��ȿ������ IP �ּҸ� ������ �ʴ´�.
NO_RECOVERY
���� �ɼ� ���� ���� ���� ������ �߻��ߴ�.
TRY_AGAIN
�ӽ��� ������ ���Ӽ��� ������ �߻��ߴ�. �ٽ� �õ��ض�.
 

����

/etc/host.conf
�ؼ� ���� ����.
/etc/hosts
ȣ��Ʈ ������ ���̽� ����
 

ȣȯ

BSD 4.3.  

����

SUS-v2 ǥ���� �����̸�, len ���ڸ� size_t Ÿ������ �����Ͽ���.(�̰��� �߸��� ���̴�. �ֳ��ϸ� �װ��� int ���� size_t �� �ƴϱ� �����̴�. Austin �ʾ��� socklen_t���� ������ �̰��� �����ϴ�.)

Glibc2�� ���� gethostbyname()ó�� �۵��ϴ�

struct hostent *gethostbyname2(const char *name, int af);

�� ������ �ִ�. �׷��� �װ��� �ּҰ� ���� �ִ� �ּ� ������ �����ϵ��� �Ѵ�.

Austin �ʾ��� gethostbyaddr() �� gethostbyname() �� ����ϴ� �Լ��� ��������� ������ ���� �Ұ��Ͽ���.

struct hostent *getipnodebyaddr (const void *restrict addr,
  socklen_t len, int type, int *restrict error_num);

struct hostent *getipnodebyname (const char *name,
  int type, int flags, int *error_num);
 

���� �׸�

resolver(3), hosts(5), hostname(7), resolv+(8), named(8)  

����

������ <skyeyes@soback.kornet.net>, 2001�� 4�� 30��


 

Index

�̸�
����
����
��ȯ��
����
����
ȣȯ
����
���� �׸�
����

This document was created by man2html, using the manual pages.
Time: 08:07:01 GMT, March 25, 2004