0

这个片段完美无缺

import dns
import dns.resolver

default = dns.resolver.get_default_resolver()
nameserver = default.nameservers[0]

除了如果我手动更改 /etc/resolv.conf 并再次调用 get_default_resolver 函数,它不会给我带来更新的地址。我需要重新启动python控制台才能看到更改效果。

我错过了什么?我应该使用同一个库对 resolv.conf 进行更改吗?

提前致谢,

4

1 回答 1

4

如果您使用的是非基于 Debian 的 Linux 并使用 glibc,那么您必须知道 glibc 会缓存 resolv.conf 并且除非明确告知,否则不会再查看它。本质上,如果 resolv.conf 已更改并且需要通过调用__res_init. 如果在脚本启​​动后连接电缆,请参阅Python 未获取 IP和https://sourceware.org/bugzilla/show_bug.cgi?id=984了解详细信息。

于 2016-07-15T10:05:19.370 回答