为什么SRV res_query总是返回-1?

时间:2012-02-29 21:38:23

标签: c++ dns srv

我正在尝试使用res_query实现简单的DNS SRV查询。我的res_query部分的代码如下:

char* target;
short* port;

union {
    HEADER hdr;
    u_char buf[1024];
} response;

ns_msg handle;
ns_rr rr;
u_char buf[256], *p;
int t, len, priority, weight;

if ((len = res_query(query, C_IN, ns_t_srv, (u_char *)&response, sizeof(response))) <0 ) {
    cout << "res_query returned -1, no answer" << endl;
    return 0;
}

这只是代码的一部分,但我想所有必需的事情都要做res_query。每次执行SRV查询时,res_query都会返回“-1”,这意味着它会失败。是我的res_query中的问题还是我做错了什么?

我尝试对www.example.com进行SRV查询。

1 个答案:

答案 0 :(得分:0)

如果找不到匹配的记录,

res_query将返回-1。

除此之外,您的代码可以正常使用,但OSX需要ns_c_in而不是C_IN

尝试使用_nicname._tcp.us.代替www.example.com进行测试。