gethostbyname

GETHOSTBYNAME(3)           리ëì¤ íë¡ê·¸ë머 매ë´ì¼          GETHOSTBYNAME(3)



ì´ë¦
       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ì¼



BSD                              2000ë 8ì 12ì¼                GETHOSTBYNAME(3)