Query the local Internet domain name server
#include <sys/types.h> #include <netinet/in.h> #include <arpa/nameser.h> #include <resolv.h> int res_query( const char * dname, int class, int type, u_char * answer, int anslen );
- The fully qualified domain name that you want to query.
- The class of information that you want; one of:
- C_IN — ARPA Internet.
- C_CHAOS — Chaos net (MIT).
- C_HS — Hesiod name server (MIT).
- C_ANY — any class.
You typically use C_IN.
- The type of information that you want. You typically use T_PTR, but you can use any of the T_* constants defined in <arpa/nameser.h>.
- A pointer to a buffer where the function can store the answer to the query.
- The length of the buffer.
Use the -l socket option to qcc to link against this library.
The res_query() function provides an interface to the server query mechanism. It constructs a query, sends it to the local server, waits for a response, and makes preliminary checks on the reply. The query requests information of the specified type and class for the specified fully qualified domain name dname. The reply message is left in the answer buffer with length anslen supplied by the caller.
The resolver routines are used for making, sending, and interpreting query and reply messages with Internet domain name servers. Global configuration and state information used by the resolver routines is kept in the structure _res. For more information on the options, see res_init().
The res_query() function uses the following lower-level routines:
- res_mkquery() constructs a standard query message.
- res_send() sends the preformatted query and returns an answer.
- dn_comp() compresses a domain name.
- dn_expand() expands the compressed domain name to a full domain name.
RFC 974, RFC 1032, RFC 1033, RFC 1034, RFC 1035
The length of a reply message, in bytes, or -1 if an error occurs (h_errno is set).
- When set, LOCALDOMAIN contains a domain name that overrides the current domain name.