2010-05-26 16 views
9

Utilizando C++, me gustaría obtener los servidores DNS que utiliza un host para tres sistemas operativos: OS X, FreeBSD y Windows. Me gustaría la confirmación de que los enfoques a continuación son de hecho las mejores prácticas, y si no, una alternativa superior.Obtenga mediante programación servidores DNS del host

Gracias de antemano por su ayuda!

Respuesta

7

En muchos sistemas Unix (linux, bsd) puede usar las funciones del resolver para obtener la lista de servidores DNS: man 3 resolver.

Después de llamar al res_init() la estructura del resolver se inicializa. La estructura de resolución almacena toda la información que necesita. La lista de servidores DNS se almacena en la entrada de estructura nsaddr_list.

La especificación exacta de la estructura del resolver se puede encontrar en resolv.h.

El uso de las funciones de resolución es la forma preferida de obtener la lista de servidores DNS. res_init() es muy probable que llene la estructura del resolver con la información que se encuentra en /etc/resolv.conf.

Véase también Use of resolv.h

+0

Sí, esto parece la mejor forma de conseguir los servidores DNS aunque el API * nix. ¡Gracias! –

+0

usa res_ninit y res_nclose, no depende de las variables de estado globales. – tangxinfa

Cuestiones relacionadas