Définir le serveur de noms DNS par programmation sur Linux
-
14-11-2019 - |
Question
Je voudrais pouvoir ajouter des adresses IP pour les serveurs de noms DNS sur Linux à partir de mon programme C / C ++. Je suis sur une plate-forme quelque peu intégrée avec une lecture seule /etc/resolv.conf. Cela signifie que je ne peux pas simplement ajouter une ligne "NameServer xxx.xxx.xxx.xxx" dans le fichier sans une petite ruse. Y a-t-il des moyens propres de le faire à partir du code?
Je pourrais essayer Symlinking /etc/resolv.conf dans un fichier dans TMPFS, mais cela semble piraté et j'ai l'impression que je devrais pouvoir faire sans écrire dans un fichier.
La solution
Jettes un coup d'oeil à nsaddr_list
dans resolv.conf
de votre libc.
Cette question dit:
Bien qu'il ne soit pas documenté, la façon courante de définir le résolveur utilisé est de mettre à jour
_res.nsaddr_list
.
Dans UCLIBC 0.9.31 spécifiquement il y a un Commentaire sur la ligne 533 dans resolv.c
décrivant comment cela fonctionne.