在 Linux 中用 C 代码获取 DNS 服务器列表

最近在做一个作业的时候,发现里面有个步骤是获取 Linux 系统中的 DNS 服务器列表,它的方法很粗暴,直接 cat grep cut 再处理。我就在想有没有完全代码的实现,然后搜了一下,果然有:

#include <resolv.h>
// ...
res_init();
// _res.nsaddr_list is an array of resolvers

用到了全局变量 _res ,虽然很 hacky ,但是至少是工作的,不清楚兼容性几何。

comments powered by Disqus