|
|||||||
|
|
GETHOSTBYNAMESection: 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> Ãæ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
hostent ¹½Â¤ÂΤΥá¥ó¥Ð¤Ï°Ê²¼¤ÎÄ̤ꡣ
ÊÖ¤êÃÍgethostbyname() ¤ª¤è¤Ó gethostbyaddr() ´Ø¿ô¤Ï hostent ¹½Â¤ÂΤòÊÖ¤¹¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤é NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥¨¥é¡¼¤ÎºÝ¤Ë¤Ï h_errno ÊÑ¿ô¤¬¥¨¥é¡¼¤ÎÈÖ¹æ¤òÊÝ»ý¤¹¤ë¡£¥¨¥é¡¼h_errno ÊÑ¿ô¤Ï°Ê²¼¤ÎÃͤò¼è¤ê¤¦¤ë¡£
¥Õ¥¡¥¤¥ë
½àµò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 | ||||||
|
|
|
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. |