C-ares获得ns记录

时间:2012-06-08 22:04:36

标签: c dns c-ares

我正在使用c-ares进行 DNS 查询。问题是,我不知道如何获得 NS 值。我没有找到任何例子和文件不适合我:(

ares_parse_ns_reply的手册页仅提供功能说明。我已经创建了自己的频道,并想出了如何进行 gethostbyname 查询:

    // ...
    status = ares_init_options(&channel, &options, optmask);
    if (status != ARES_SUCCESS) {
        printf("ares_init_options: %s\n", ares_strerror(status));
        return EXIT_FAILURE;
    }
    // ...
    ares_gethostbyname(channel, "stackoverflow.com", AF_INET, callback, NULL);
    // ...

但是我接下来要做什么来获得MX / NS / AAAA记录?

1 个答案:

答案 0 :(得分:6)

几个小时后:

static void callback_ns(void *arg, int status, int timeouts, unsigned char *abuf, int alen)
{
   struct hostent *host = NULL;
   ares_parse_ns_reply(abuf, alen, &host)
   // your result now in "host" variable
}

ares_query(channel, "stackoverflow.com", ns_c_in, ns_t_ns, callback_ns, NULL);