resolver

Autres langues

Langue: ja

Autres versions - même langue

Version: 2004-10-31 (openSuse - 09/10/07)

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

̾Á°

res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp, dn_expand - ¥ì¥¾¥ë¥Ð¡¦¥ë¡¼¥Á¥ó

½ñ¼°


#include <netinet/in.h>

#include <arpa/nameser.h>

#include <resolv.h>

extern struct state _res;



int res_init(void);



int res_query(const char *dname, int class, int type,

unsigned char *answer, int anslen);




int res_search(const char *dname, int class, int type,

unsigned char *answer, int anslen);




int res_querydomain(const char *name, const char *domain,

int class, int type, unsigned char *answer, int anslen);




int res_mkquery(int op, const char *dname, int class,

int type, char *data, int datalen, struct rrec *newrr, char *buf, int buflen);




int res_send(const char *msg, int msglen, char *answer,

int anslen);




int dn_comp(unsigned char *exp_dn, unsigned char *comp_dn,

int length, unsigned char **dnptrs, unsigned char *exp_dn, unsigned char **lastdnptr);




int dn_expand(unsigned char *msg, unsigned char *eomorig,

unsigned char *comp_dn, unsigned char *exp_dn, int length);


-lresolv ¤Ç¥ê¥ó¥¯¤¹¤ë¡£

ÀâÌÀ

¤³¤ì¤é¤Î´Ø¿ô¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤ËÌ䤤¹ç¤ï¤»¡¢ ¤½¤Î±þÅú¤ò²ò¼á¤¹¤ë¡£

res_init() ´Ø¿ô¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥É¥á¥¤¥ó̾¡¢¸¡º÷½ç¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼ ¥¢¥É¥ì¥¹¤òÆÀ¤ë¤¿¤á¤ËÀßÄê¥Õ¥¡¥¤¥ë (resolv.conf(5) »²¾È) ¤òÆɤࡣ ¤â¤·¥µ¡¼¥Ð¡¼¤¬¼¨¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥í¡¼¥«¥ë¥Û¥¹¥È¤ò»î¤¹¡£ ¥É¥á¥¤¥ó¤¬¼¨¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥í¡¼¥«¥ë¥Û¥¹¥È¤ËÉÕ¤±¤é¤ì¤¿¥É¥á¥¤¥ó¤òÍѤ¤¤ë¡£ ´Ä¶­ÊÑ¿ô LOCALDOMAIN ¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤­¤ë¡£ res_init() ¤Ï¡¢¸å½Ò¤¹¤ë´Ø¿ô¤Î¤É¤ì¤«¤¬ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¡¢¤½¤Î´Ø¿ô ¤«¤é¼Â¹Ô¤µ¤ì¤ë¡£

res_query() ´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿ type ¤È class ¤Î ´°Á´½¤¾þ¥É¥á¥¤¥ó̾ (FQDN) name ¤ò¡¢¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤ØÌ䤤¹ç¤ï¤»¤ë¡£ ±þÅú¤Ï¡¢¸Æ¤Ó½Ð¤·¤¿Â¦¤Ë¤è¤Ã¤ÆÍÑ°Õ¤µ¤ì¤ëŤµ anslen ¤Î answer ¥Ð¥Ã¥Õ¥¡¡¼¤Ë»Ä¤µ¤ì¤ë¡£

res_search() ´Ø¿ô¤Ï¡¢Ì䤤¹ç¤ï¤»¤ò¹Ô¤¤ res_query() ƱÍͤ½¤Î±þÅú¤ò ÂԤĤ¬¡¢¤µ¤é¤Ë¥Ç¥Õ¥©¥ë¥È¤ò¼ÂÁõ¤·¤Æ¤ª¤ê RES_DEFNAMES ¤È RES_DNSRCH ¤Ë¤è¤Ã¤Æ µ¬Äꤵ¤ì¤ë¸¡º÷¥ë¡¼¥ë¤òŬÍѤ¹¤ë¡£(²¼µ­ _res ¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È)

res_querydomain() ´Ø¿ô¤Ï name ¤È domain ¤Î·ë¹ç¤Ë res_query() ¤òÍѤ¤¤ÆÌ䤤¹ç¤ï¤»¤ò¹Ô¤¦¡£

¼¡¤Î´Ø¿ô¤Ï¡¢ res_query() ¤Ç»È¤ï¤ì¤ë²¼°Ì¥ë¡¼¥Á¥ó¤Ç¤¢¤ë¡£

res_mkquery() ´Ø¿ô¤Ï¡¢¥É¥á¥¤¥ó̾ dname ¤Î°Ù¤Ë¡¢Ä¹¤µ buflen ¤Î buf ¤ËÌ䤤¹ç¤ï¤»¤ë¥á¥Ã¥»¡¼¥¸¤òºîÀ®¤¹¤ë¡£ Ì䤤¹ç¤ï¤»¤Î·¿ op ¤ÏÄ̾ï "QUERY" ¤À¤¬¡¢ <arpa/nameser.h> ¤ÇÄêµÁ ¤µ¤ì¤¿·¿¤Î¤É¤ì¤Ç¤âÎɤ¤¡£ newrr ¤Ï¸½ºß»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¡£

res_send() ´Ø¿ô¤Ï¡¢Ä¹¤µ msglen ¤Î msg ¤Ë·è¤á¤é¤ì¤¿½ñ¼° ¤ÇÌ䤤¹ç¤ï¤»¡¢answer ¤ËŤµ anslen ¤Î²óÅú¤òÊÖ¤¹¡£ ¤Þ¤À¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð res_init() ¤ò¸Æ¤Ó½Ð¤¹¡£

dn_comp() ´Ø¿ô¤Ï¥É¥á¥¤¥ó̾ exp_dn ¤ò°µ½Ì¤·¤Æ¡¢Ä¹¤µ length ¤Î¥Ð¥Ã¥Õ¥¡¡¼ comp_dn ¤ËÊݸ¤¹¤ë¡£ °µ½Ì¤Ë¤Ï¥Ý¥¤¥ó¥¿¡¼ÇÛÎó dnptrs ¤òÍѤ¤¤ë¡£ ¤³¤ì¤é¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¡¢¸½ºß¤Î¥á¥Ã¥»¡¼¥¸¤ÎÃæ¤Ë¤¢¤ë°ÊÁ°¤Ë°µ½Ì¤µ¤ì¤¿Ì¾Á°¤ò»Ø¤¹¡£ ºÇ½é¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï¥á¥Ã¥»¡¼¥¸¤ÎËÁƬ¤ò»Ø¤·¡¢¤½¤Î¥ê¥¹¥È¤Ï NULL ¤Ç½ª¤ï¤ë¡£ ÇÛÎó¤ÎÈÏ°Ï¤Ï lastdnptr ¤Ç·è¤á¤é¤ì¤ë¡£ dnptr ¤¬ NULL ¤Ê¤é¤Ð¥É¥á¥¤¥ó̾¤Ï°µ½Ì¤µ¤ì¤Ê¤¤¡£ lastdnptr ¤¬ NULL ¤Ê¤é¤Ð¡¢¤½¤Î¥é¥Ù¥ë¤Î¥ê¥¹¥È¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤µ¤ì¤Ê¤¤¡£

dn_expand() ´Ø¿ô¤Ï¡¢°µ½Ì¤µ¤ì¤¿¥É¥á¥¤¥ó̾ comp_dn ¤«¤é¥µ¥¤¥º ¤¬ length ¤Î exp_dn ¥Ð¥Ã¥Õ¥¡¡¼¤ËÀµ¼°¤Ê¥É¥á¥¤¥ó̾¤òŸ³«¤¹¤ë¡£ ¤½¤Î°µ½Ì¤µ¤ì¤¿Ì¾Á°¤Ï¡¢Ì䤤¹ç¤ï¤»¡¢¤Þ¤¿¤Ï±þÅú¥á¥Ã¥»¡¼¥¸¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢ msg ¤¬¥á¥Ã¥»¡¼¥¸¤ÎËÁƬ¤ò»Ø¤¹¡£

¥ì¥¾¥ë¥Ð¡¦¥ë¡¼¥Á¥ó¤Ï¡¢<resolv.h> ¤ËÄêµÁ¤µ¤ì¤¿ _res ¹½Â¤ÂÎ¤Ë ´Þ¤Þ¤ì¤Æ¤¤¤ëÁ´ÂÎŪ¤ÊÀßÄê¤È¾õÂ֤ξðÊó¤ò»ÈÍѤ¹¤ë¡£ Ä̾ï¥æ¡¼¥¶¡¼¤ËÁàºî¤Ç¤­¤ë¹àÌÜ¤Ï _res.options ¤À¤±¤Ç¤¢¤ë¡£ ¤³¤Î¹àÌܤϰʲ¼¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤˤǤ­¤ë¡£

RES_INIT
res_init() ¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ì¤Ð¿¿¡£
RES_DEBUG
¥Ç¥Ð¥Ã¥°¡¦¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¡£
RES_AAONLY
¸¢°ÒÉÕ¤±¤µ¤ì¤¿ (authoritative) ²óÅú¤Î¤ß¼õ¤±Æþ¤ì¤ë¡£ res_send() ¤Ï¡¢ºÇ½ªÅª¤Ë¸¢°ÒÉÕ¤±¤µ¤ì¤¿²óÅú¤òÆÀ¤é¤ì¤ë¤«¡¢¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë ¤Þ¤Ç³¹Ô¤¹¤ë¡£ [¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤]
RES_USEVC
Ì䤤¹ç¤ï¤»¤Ë UDP ¥Ç¡¼¥¿¥°¥é¥à¤Ç¤Ï¤Ê¤¯ TCP Àܳ¤òÍѤ¤¤ë¡£
RES_PRIMARY
¥×¥é¥¤¥Þ¥ê¡¦¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Î¤ßÌ䤤¹ç¤ï¤»¤ë¡£
RES_IGNTC
ÀÚ¤êµÍ¤á¥¨¥é¡¼ (truncation error) ¤ò̵»ë¤¹¤ë¡£TCP ¤Ç¥ê¥È¥é¥¤¤·¤Ê¤¤¡£ [¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤]
RES_RECURSE
ºÆµ¢Í×µá (recursion desired) ¥Ó¥Ã¥È¤òÌ䤤¹ç¤ï¤»¤ËÀßÄꤹ¤ë¡£ ºÆµ¢¤Ï res_send() ¤Ç¤Ï¤Ê¤¯¥É¥á¥¤¥ó¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£ [¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú]
RES_DEFNAMES
ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ res_search() ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥É¥á¥¤¥ó̾¤ò°ìÉôʬ ¤Î¤ß¤«¤é¤Ê¤ë̾Á°¡¢¤¹¤Ê¤ï¤Á¥É¥Ã¥È¤ò´Þ¤Þ¤Ê¤¤Ì¾Á°¤ËÉÕ¤±²Ã¤¨¤ë¡£ [¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú]
RES_STAYOPEN
Ì䤤¹ç¤ï¤»Ãæ¤Ë TCP Àܳ¤òÊݤĤ¿¤á RES_USEVC ¤È¶¦¤ËÍѤ¤¤é¤ì¤ë¡£
RES_DNSRCH
ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ res_search() ¤Ï¸½ºß¤Î¥É¥á¥¤¥ó¤ª¤è¤Ó¿Æ¥É¥á¥¤¥ó¤Î ¥Û¥¹¥È̾¤òõ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï gethostbyname(3) ¤ÇÍѤ¤¤é¤ì¤ë¡£ [¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú]

ÊÖ¤êÃÍ

res_init() ´Ø¿ô¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð -1 ¤òÊÖ¤¹¡£

res_query(), res_search(), res_querydomain(), res_mkquery(), res_send() ´Ø¿ô¤Ï±þÅú¤ÎŤµ¤òÊÖ¤¹¡£ ¤Þ¤¿¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð -1 ¤òÊÖ¤¹¡£

dn_comp() ¤È dn_expand() ´Ø¿ô¤Ï°µ½Ì¤µ¤ì¤¿¥É¥á¥¤¥ó̾¤ÎŤµ¤òÊÖ¤¹¡£ ¤Þ¤¿¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ì¤Ð -1 ¤òÊÖ¤¹¡£

¥Õ¥¡¥¤¥ë


/etc/resolv.conf          ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë

/etc/host.conf            ¥ì¥¾¥ë¥ÐÀßÄê¥Õ¥¡¥¤¥ë

½àµò

4.3BSD

´ØÏ¢¹àÌÜ

gethostbyname(3), resolver(5), hostname(7), resolv.conf(5), named(8)