Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

GETHOSTBYNAME

Section: Linux Programmer's Manual (3)
Updated: 2000-08-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 ¥¢¥É¥ì¥¹¤Îµ­½Ò¤Ë¤Ä¤¤¤Æ¤Ï RFC 1884 ¤ò»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤¡£ name ¤¬ IPv4 ¤« IPv6 ¤Î¥¢¥É¥ì¥¹¤À¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ ̾Á°°ú¤­ (lookup) ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ gethostbyname() ¤Ïñ¤Ë name ¤ò¤½¤Î¤Þ¤Þ hostent ¹½Â¤ÂΤΠh_name ¥Õ¥£¡¼¥ë¥É¤Ë¥³¥Ô¡¼¤·¡¢ ¤µ¤é¤Ë name ¤ò struct in_addr ·Á¼°¤Çɽ¤·¤¿¥Ç¡¼¥¿¤òƱ¹½Â¤ÂΤΠh_addr_list[0] ¥Õ¥£¡¼¥ë¥É¤ËÆþ¤ì¤Æ¡¢¤½¤Î¹½Â¤ÂΤòÊÖ¤¹¡£ name ¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Æ¡¢¤«¤Ä´Ä¶­ÊÑ¿ô HOSTALIASES ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤Þ¤º HOSTALIASES ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤«¤é name ¤Î¥¨¥ó¥È¥ê¤¬¸¡º÷¤µ¤ì¤ë (¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï hostname(7) ¤ò»²¾È¤Î¤³¤È)¡£ name ¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¸½ºß¤Î¥É¥á¥¤¥ó¤È¤½¤Î¿Æ¥É¥á¥¤¥ó¤¬¸¡º÷¤µ¤ì¤ë¡£

gethostbyaddr() ´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿¥Û¥¹¥È¥¢¥É¥ì¥¹ addr (Ťµ len¡¢ ¥¿¥¤¥× type) ¤ËÂбþ¤¹¤ë¹½Â¤ÂÎ hostent ¤òÊÖ¤¹¡£¸½ºßÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë¥¿¥¤¥×¤Ï AF_INET ¤Î¤ß¤Ç¤¢¤ë¡£

sethostent() ´Ø¿ô¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ø¤ÎÀܳÍͼ°¤ò»ØÄꤹ¤ë¡£ stayopen ¤¬¿¿ (1) ¤Ê¤é¤Ð¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë¤Ï¡¢Àܳ¤µ¤ì¤¿ TCP ¥½¥±¥Ã ¥È¤òÍѤ¤¡¢Ï¢Â³¤·¤¿Ì䤤¹ç¤ï¤»¤Î´Ö¤ËÀܳ¤ò°Ý»ý¤¹¤ë¡£µ¶¤Ê¤é¤Ð¥Í¡¼¥à¥µ¡¼¥Ð¡¼ ¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë UDP ¥Ç¡¼¥¿¥°¥é¥à¤òÍѤ¤¤ë¡£

endhostent() ´Ø¿ô¤Ï¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ËÍѤ¤¤¿ TCP Àܳ¤ÎÍøÍѤò½ªÎ»¤¹¤ë¡£

herror() ´Ø¿ô (¤â¤¦¸Å¤¤) ¤Ï¸½ºß¤Î h_errno ¤ËÂбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò stderr ¤Ë½ÐÎϤ¹¤ë¡£

hsterror() ´Ø¿ô (¤â¤¦¸Å¤¤) ¤Ï¥¨¥é¡¼ÈÖ¹æ (ŵ·¿Åª¤Ë¤Ï h_errno) ¤ò °ú¿ô¤Ë¼è¤ê¡¢Âбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤òÊÖ¤¹¡£

gethostbyname() ¤È gethostbyaddr() ¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¥É¥á¥¤¥ó̾¤ÎÌ䤤¹ç¤ï¤»¤Ç¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼ named(8)¡¢ /etc/hosts ¤Î¥Ç¡¼¥¿¹Ô¡¢¤ª¤è¤Ó Network Information Service (NIS ¤Þ¤¿¤Ï YP) ¤Î¤¤¤º¤ì¤«¡¢¤¢¤ë¤¤¤Ï¤¹¤Ù¤Æ¤¬ÍѤ¤¤é¤ì¤ë¡£¤³¤ì¤Ï /etc/host.conf ¤Î order ¹Ô¤ÎÆâÍÆ¤Ë°Í¸¤¹¤ë (¾Ü¤·¤¯¤Ï resolv+(8) ¤ò¸«¤è)¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤Þ¤º named (8) ¤ËÌ䤤¹ç¤ï¤»¡¢¼¡¤¤¤Ç /etc/hosts ¤ò±ÜÍ÷¤¹¤ë¡£

hostent ¹½Â¤ÂÎ¤Ï <netdb.h> Ãæ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:


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 */
}
#define h_addr  h_addr_list[0]  /* for backward compatibility */

hostent ¹½Â¤ÂΤΥá¥ó¥Ð¤Ï°Ê²¼¤ÎÄ̤ꡣ

h_name
¥Û¥¹¥È¤ÎÀµ¼°Ì¾ (official name)¡£
h_aliases
¥Û¥¹¥È¤ÎÊÌ̾¤«¤é¤Ê¤ëÇÛÎó¡£ 0 ¤Ç½ªÃ¼¤¹¤ë¡£
h_addrtype
¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×¡£¸½ºß¤Ï¤¹¤Ù¤Æ AF_INET ¤Ç¤¢¤ë¡£
h_length
¥Ð¥¤¥Èñ°Ì¤Çɽ¤·¤¿¥¢¥É¥ì¥¹¤ÎŤµ¡£
h_addr_list
¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ò¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Çɽ¤·¤¿ÇÛÎó¡£ 0 ¤Ç½ªÃ¼¤¹¤ë¡£
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
aurhoritative ¤Ê¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ç°ì»þŪ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£»þ´Ö¤ò¤ª¤¤¤Æ ¤â¤¦°ìÅٻ¤³¤È¡£
 

¥Õ¥¡¥¤¥ë

/etc/host.conf
̾Á°²ò·è¤ÎÀßÄê¥Õ¥¡¥¤¥ë
/etc/hosts
¥Û¥¹¥È¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë
 

½àµò

BSD 4.3.  

Ãí°Õ

gethostbyname() ¤ª¤è¤Ó gethostbyaddr() ´Ø¿ô¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ ¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤­¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ hostent ¹½Â¤ÂΤϥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¹½Â¤ÂΤΥ³¥Ô¡¼¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤Ç¤¢¤ë¡£ - ¤è¤ê¿¼¤¤¥³¥Ô¡¼¤¬É¬ÍפǤ¢¤ë¡£

SUS-v2 ¤Ï¥Ð¥°¤¬Â¿¤¯¡¢ len ¥Ñ¥é¥á¡¼¥¿¤ò size_t ·¿¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë¡£ (¤³¤ì¤Ï¸í¤ê¤Ç¡¢ size_t ·¿¤Ç¤Ï¤Ê¤¯ int ·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Austin ¥É¥é¥Õ¥È¤Ç¤Ï¤³¤ì¤ò socklen_t ¤È¤·¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ï OK¡£)

glibc2 ¤Ë¤Ï

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

¤â¤¢¤ê¡¢ gethostbyname() ¤ÈƱ¤¸¤è¤¦¤Ëưºî¤¹¤ë¤¬¡¢ ¤³¤Á¤é¤Ï¥¢¥É¥ì¥¹¤¬Â°¤¹¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

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)


 

Index

̾Á°
½ñ¼°
ÀâÌÀ
ÊÖ¤êÃÍ
¥¨¥é¡¼
¥Õ¥¡¥¤¥ë
½àµò
Ãí°Õ
´ØÏ¢¹àÌÜ

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man3". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.