gethostbyname

ëªì¹
     gethostbyname, gethostbyname2, gethostbyaddr, gethostent, sethostent,
     endhostent, herror, hstrerror — ë¤í¸ìí¬ í¸ì¤í¸ì ìí¸ë¦¬ì ì·¨ë

íë¡ê·¸ë¨ ë¼ì´ë¸ë¬ë¦¬
     Standard C Library (libc, -lc)

ìì
     <netdb.h> extern int h_errno; struct hostent * gethostbyname(const char
     *name) struct hostent * gethostbyname2(const char *name, int af) struct
     hostent * gethostbyaddr(const char *addr, int len, int type) struct
     hostent * gethostent(void) void sethostent(int stayopen) void
     endhostent(void) void herror(const char *string) const char *
     hstrerror(int err)

í´ì¤
     gethostbyname(), gethostbyname2(), gethostbyaddr() í¨ìë ê°ê°, ë¤ìì ëíë´ë
     구조를 ê°ì§ë ì¤ë¸ì í¸ìì í¬ì¸í°ë¥¼ ëë ¤ì¤ëë¤.  구조체ìë, ì´ë¦ ëë
     주ìì ìí´ ì°¸ì¡°ëë ì¸í°ë· í¸ì¤í¸ê° 기ì ëê³  ìì´, ë¤ììë² named(8)
     (ì¼)ë¡ë¶í°, ëë /etc/hosts ì ìë íì ë´ì íëë¡ë¶í° ì»ì ì ìë ì 보를 í¬í¨íê³
     ììµëë¤.  ë¡ì»¬ì ë¤ììë²ê° ì¤íëì´ ìì§ ìì ê²½ì°, ì´ë¬í routineë /etc/hosts
     (ì)를 ê²ìí©ëë¤.

     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]  /* 주ì, íë°© í¸íì© */

     ì´ êµ¬ì¡°ì²´ì 멤ë²ë ë¤ìê³¼ ê°ìµëë¤.

     h_name       í¸ì¤í¸ì ì ìëª.

     h_aliases    í¸ì¤í¸ì ë³ëª (ì¨ë¦¬ì´ì¤(alias))ì ëë¡ ëëë ë°°ì´.

     h_addrtype   ëë ¤ì£¼ì´ì§ë 주ìì íìì´ë©°, íµìì AF_INET

     h_length     주ìì ë°ì´í¸ìì ìí 길ì´.

     h_addr_list  í¸ì¤í¸ì ë¤í¸ìí¬ ì£¼ìì ëë¡ ëëë ë°°ì´.  í¸ì¤í¸ 주ìë ë¤í¸ìí¬
                  ë°ì´í¸ ì¤ëë¡ ëë ¤ì£¼ì´ì§ëë¤.

     h_addr       h_addr_list ì ìë ìµì´ì 주ìì´ë©°, íë°© í¸íì©.

     ë¤ììë²ë¥¼ ì¬ì©íë ê²½ì°, ì´ë¦ì´ ë·ì¼ë¡ ëëì§ ìì ëë gethostbyname() ë°
     gethostbyname2() (ì)ë ì´ë¦ì´ ë¶ì í¸ì¤í¸ë¥¼, íì¬ì ëë©ì¸ê³¼ ë¶ëª¨ì
     ëë©ì¸ì¼ë¡ë¶í° ê²ìí©ëë¤.  ì´ë¦ì ë·ì´ í¬í¨ëì§ ìê³ , íí¸ íê²½ ë³ì
     “HOSTALIASES” ì ì¨ë¦¬ì´ì¤(alias) íì¼ì ì´ë¦ì´ í¬í¨ëì´ ìë ê²½ì°ë, ìë ¥ëªì
     ì í©íë ì¨ë¦¬ì´ì¤(alias)ê°, ì°ì  ì¨ë¦¬ì´ì¤(alias) íì¼ë¡ë¶í° ê²ìë©ëë¤.
     ëë©ì¸ ê²ìì ììê³¼ ì¨ë¦¬ì´ì¤(alias) íì¼ì ììì ëí´ìë, hostname(7) (ì)를
     ì°¸ì¡°í´ ì£¼ì¸ì.

     gethostbyname2() í¨ìë gethostbyname() ì ë°ì íì¼ë¡, AF_INET ì´ì¸ì 주ì
     í¨ë°ë¦¬, ì를 ë¤ì´ AF_INET6 ììì ê²ìì ê°ë¥íê²í기 ìíì ê²ìëë¤. ë¤ë§ íì¬ë,
     af ì¸ìì AF_INET (ì)를 ì§ì í  íìê° ììµëë¤. ë¤ë¥¸ ê°ì ì§ì íë©´(ì)
     gethostbyname2() í¨ìë, h_errno (ì)를 NETDB_INTERNAL (ì¼)ë¡ ì¤ì í ë¤ìì,
     NULL (ì)를 ëë ¤ì¤ëë¤.

     sethostent() í¨ìë, 문ìíê³  ìì ì ìëìë¤ TCP ìì¼ì ì¬ì©íê³  ì¶ì ê²½ì°ì
     ì¬ì©í  ì ììµëë¤.  stayopen íëê·¸ê° 0 ì´ ìëë©´, TCP ì ìí´ ëª¨ë  ë¬¸ì를
     ë¤ììë²ì ë³´ë´, gethostbyname(), gethostbyname2(), gethostbyaddr() ì ê°ê°
     í¸ì¶í´ íìë, ì ìì ë³´ê´ ì ì§íëë¡(ë¯ì´) ìµìì ì¤ì í©ëë¤.  íëê·¸ê° 0 ë, 문ìë
     UDP ë°ì´í° ê·¸ë¨ì ì¬ì©í´ ì¤íë©ëë¤.

     endhostent() í¨ìë TCP ì ìì í´ë¡ì°ì¦ í©ëë¤.

     herror() í¨ìë ì§ë¨ ì¶ë ¥ì ë©ì¸ì§ë¥¼ ì¨ëëë¤.  ì§ë¨ ì¶ë ¥ì ìºë¦í° ë¼ì¸
     íë¼ë¯¸í° s ë¼ê³  ì ì ìºë¦í° ë¼ì¸ ": " ë¼ê³  h_errno ì ê°ì ëìíë ë©ì¸ì§ë¡
     구ì±ë©ëë¤.

     hstrerror() í¨ìë, err íë¼ë¯¸í°ì ê°ì ëìíë ë©ì¸ì§ íì¤í¸ì ìºë¦í° ë¼ì¸ì
     ëë ¤ì¤ëë¤.

ê´ë ¨ íì¼
     /etc/hosts
     /etc/host.conf
     /etc/resolv.conf

ì§ë¨
     gethostbyname(), gethostbyname2(), gethostbyaddr() ì ìë¬ ìíë, NULL
     í¬ì¸í°ê° ëìê°ë ê²ì¼ë¡ ëíë©ëë¤. ê·¸ ê²½ì°ë ì¸ë¶ ì ì h_errno (ì)를 ì²´í¬íë
     ê²ì¼ë¡ì¨, ì¼ìì ì¸ ìë¬ì¸ì§, ë¬´í¨ ëë 미ì§ì í¸ì¤í¸ëªì ì§ì í기
     ë문ìì¸ì§ë¥¼ íë¨í  ì ììµëë¤.  herror() routineì ìí´, ìë¬ë¥¼ 기ì íë ìë¬
     ë©ì¸ì§ë¥¼ íìí  ì ììµëë¤.  ì¸ì string í NULL (ì´)ê° ìëë©´ íìëì´ íì
     ì½ë¡ ê³¼ ì¤íì´ì¤ê° ê³ìë©ëë¤.  ìë¬ ë©ì¸ì§ê° ì¢ë¨ì ê°íê³¼ í¨ê» ì¸ìë©ëë¤.

     ë³ì h_errno (ì)ë ë¤ìì ê°ì ì·¨í  ì ììµëë¤.

     HOST_NOT_FOUND  ì§ì í ì´ë¦ì í¸ì¤í¸ê° 미ì§ìëë¤.

     TRY_AGAIN       ì´ê²ì íµìì ì¼ìì ì¸ ìë¬ë¡, ë¡ì»¬ ìë²ê° ê³µì ìë² (ì¼)ë¡ë¶í°
                     ìëµì ì»ì ì ììë ê²ì ì미í©ëë¤. ì ì í ì¬ì°¨ ìëíë©´(ì)
                     ì±ê³µíë¤ ê²½ì°ê° ììµëë¤.

     NO_RECOVERY     íë±ì ìê¸°ì¹ ìì ìë² ìë¬ê° ë°ìíìµëë¤.  ì´ê²ì íë³µ ë¶ë¥ì¸
                     ìë¬ìëë¤.

     NO_DATA         ì구ë ì´ë¦ì ì í¨í©ëë¤ë§, IP 주ìê° ììµëë¤.  ì´ê²ì ì¼ìì ì¸
                     ìë¬ê° ìëëë¤.  ì§ì í í¸ì¤í¸ëªì´ ë¤ììë²ìë ìë ¤ì ¸ ìë ê²ìë
                     ë¶êµ¬íê³ , ëìíë 주ìê° ìë¤ê³  íë ì미ìëë¤.  ì´ ë¤ììë²ì
                     ëí´ì ê°ì ëë©ì¸ëªì¼ë¡ ë³ëì¸ íìì ì구를 ì¤ìíë©´, íëµì ì»ì
                     ì ììì§ë 모ë¦ëë¤.  ì를 ë¤ì´ ë©ì´ë¥´í¬ìë¤ê° ê·¸ ëë©ì¸ì
                     ë±ë¡ëì´ ìë ê²½ì°ê° ììµëë¤.

ê´ë ¨ í목
     getaddrinfo(3), resolver(3), hosts(5), hostname(7), named(8)

ê²½ê³
     ë¤ììë²ë ê²ìíì§ ìê³  /etc/hosts ë§ì ê²ìíë routine를 ì¬ì©íëë¡(ë¯ì´)
     libc(3) íì§ë§ 구ì¶ëìì ê²½ì°, gethostent() í¨ìê° ì ìëì´ sethostent() ë°
     endhostent() íì§ë§ ì¬ì ìë©ëë¤.

     gethostent() í¨ìë, /etc/hosts íì¼ì ë¤ìì íì ì½ì´ë¤ìëë¤.  ì´ ë, íìíë©´ íì¼ì
     ì¤íí©ëë¤.

     sethostent() í¨ìë íì¼ /etc/hosts (ì)를 ì¤í í¹ì ëê°ê¸° í©ëë¤.  stayopen
     ì¸ìê° 0 ì´ ìëë©´, gethostbyname(), gethostbyname2(), gethostbyaddr() ì
     ê°ê°ì í¸ì¶ì ë¤, íì¼ì í´ë¡ì°ì¦ ëì§ ììµëë¤.

     endhostent() í¨ìë íì¼ì í´ë¡ì°ì¦ í©ëë¤.

ìì¬
     herror() í¨ìë 4.3BSD ê·¸ë¦¬ê³  ë±ì¥íìµëë¤.  endhostent(),
     gethostbyaddr(), gethostbyname(), gethostent(), sethostent() í¨ìë 4.2BSD
     ê·¸ë¦¬ê³  ë±ì¥íìµëë¤.  gethostbyname2() í¨ìë BIND ë²ì ¼ 4.9. 4 ë¡ ì²ì
     ë±ì¥íìµëë¤.

ë²ê·¸
     ì´ë¬í í¨ìë ì ì  ë°ì´í° 기ìµìì ì¬ì©í©ëë¤.  ë¤ìì ì´ ë°ì´í°ë¥¼ ì¬ì©í  íìê°
     ìë ê²½ì°ë, ì´íì ì´ë¬í í¨ì í¸ì¶ë¡ ë°ì´í°ê° ë§ì°ê¸°ë기 ì ì, ì¹´í¼í´
     ë³´ì¡´í  íìê° ììµëë¤.  ë§ë¶ì¬ 주ì ë°ì´í°ë¡ì ë°ìë¤ì´ë ê²ì íì¬, ì¸í°ë·
     주ì í¬ë§· ë¿ìëë¤.