2010-05-26 8 views
9

Mit C++ möchte ich die DNS-Server erhalten, die von einem Host für drei Betriebssysteme verwendet werden: OS X, FreeBSD und Windows. Ich würde gerne bestätigen, dass die folgenden Ansätze in der Tat die beste Vorgehensweise sind, und wenn nicht, eine überlegene Alternative.Programmgesteuert DNS-Server des Hosts

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

7

Auf vielen Unix-Systemen (Linux, BSD) können Sie die Resolver-Funktionen verwenden, um die Liste der DNS-Server zu erhalten: man 3 resolver.

Nach dem Aufruf res_init() wird die Resolverstruktur initialisiert. Die Resolver-Struktur speichert alle Informationen, die Sie benötigen. Die Liste der DNS-Server wird im Struktureintrag nsaddr_list gespeichert.

Die genaue Spezifikation der Resolverstruktur kann am ehesten in resolv.h gefunden werden.

Die Verwendung der Resolver-Funktionen ist der bevorzugte Weg, um die Liste der DNS-Server zu erhalten. res_init() wird höchstwahrscheinlich die Resolverstruktur mit den Informationen füllen, die in /etc/resolv.conf gefunden werden.

Siehe auch Use of resolv.h

+0

Yep, das die bevorzugten Art und Weise scheint den DNS-Server, obwohl die * nix-API zu erhalten. Vielen Dank! –

+0

Verwenden Sie res_ninit und res_nclose, nicht von globalen Statusvariablen abhängen. – tangxinfa

Verwandte Themen