res_ninit
и res_init
только когда-либо читали информацию сервера имен из /etc/resolv.conf
.Вы всегда можете получить одинаковые серверы имен данных, проанализировав /etc/resolv.conf
самостоятельно и изучив строки nameserver
.Если нет строки nameserver
, будет использоваться значение по умолчанию 127.0.0.1
.
Я не думаю, что для этого нужно предоставлять API, потому что формат файла настолько прост, что вероятно больше труднее использовать API, чем читать файл.
Назначение сервера имен через DHCP осуществляется путем переписывания /etc/resolv.conf
, если на машине не работает локальный решатель кэширования.Точный механизм, используемый для этого, зависит от дистрибутива, например, Debian использует resolvconf
, если он установлен.
Если в системе работает локальный решатель кэширования (например, dnsmasq или Unbound).), серверы имен через DHCP могут быть напрямую настроены в этом решателе кэширования.В этом случае /etc/resolv.conf
будет продолжать указывать на один и тот же сервер имен, как правило, перечисляя nameserver 127.0.0.1
или вообще не указывать информацию о сервере имен (по умолчанию).