c dns resolver

c - Uso de resolv.h



dns resolver (2)

No debe declarar _res usted mismo - resolv.h incluye la declaración correcta (a pesar de lo que implica la página man).

Estoy tratando de averiguar la dirección de mi servidor DNS leyéndola de la estructura _res de resolv.h Según la resolución del hombre 3, el código de configuración debería ser.

#include <netinet/in.h> #include <arpa/nameser.h> #include <resolv.h> extern struct state _res;

y luego leí todo lo que necesito. Mi problema es que tratando de compilar esto obtengo

resolver.c:5:21: error: conflicting types for ''__res_state'' extern struct state _res; ^ /usr/include/resolv.h:251:16: note: expanded from macro ''_res'' #define _res (*__res_state()) ^ /usr/include/resolv.h:249:28: note: previous declaration is here extern struct __res_state *__res_state(void) __attribute__ ((__const__)); ^ 1 error generated.

por clang.

¿Qué estoy haciendo mal?


#include <netinet/in.h> #include <arpa/nameser.h> #include <resolv.h> int main() { // call this first res_init(); // do something with this list it contains list of dns servers _res.nsaddr_list[0]; }