linux下编程获取/etc/resolv.conf中的域名解析服务器

直接上代码吧:

#include <unistd.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#include <resolv.h>

int main(int argc, char *argv[])
{
    struct __res_state res;
    res.options &= ~ RES_INIT;

    int err = res_ninit(&res);
    if (err) {
        fprintf(stderr, "res_init error: %d\n", err);
        return err;
    }

    char ip[16];
    for(int i = 0 ; i < res.nscount; ++i) {
        ip[0] = '\0';
        if (! inet_ntop(AF_INET, &res.nsaddr_list[i].sin_addr, ip, sizeof(ip))) {
            perror("inet_ntop");
            continue;
        }
        printf("ip: %s\n", ip);
    }

    res_nclose(&res);

    return 0;
}