0
我试图通过使用res_query
来实现简单的DNS SRV查询。我对res_query部分代码如下:为什么SRV res_query总是返回-1?
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查询。
我试过对现在的几个域做SRV查询,当一些站点返回SRV记录时,它似乎只是随机的。建议的'_nicname._tcp.us'首先没有返回任何内容,但过了一段时间,它给了我一个答案。当我尝试使用'dig'和'nslookup'命令来执行SRV查询时发生了同样的情况。我认为每个域在返回SRV查询时至少会返回一些内容。我还发现了其他一些建议的网站,比如'_sip._udp_columbia.edu',它的行为方式完全一样:有时会返回记录,有时却不会。 – zaplec 2012-03-02 07:36:19