[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:20702] Re: Q: DNS
越水です。
rubyのソースを眺めてみたのですが、どうもgetaddrinfoが怪しそうでした。
そこで、下のようなプログラムで試してみると、どうも推測が当たっているよ
うです。
ai_socktypeをAF_UNSPECにすると、外のDNSに問い合わせにいきます。
でも、AF_UNSPECを指定しないと、getaddrinfoの意味がないように思うのです
けど。
extern "C" {
#include <netdb.h>
}
#include <cstdio>
#include <cstring>
using namespace std;
int main(int argc, char* argv[])
{
if (argc < 2) {
return 1;
}
addrinfo hints;
memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_CANONNAME;
hints.ai_socktype = SOCK_STREAM;
if (argc > 2)
hints.ai_family = AF_UNSPEC;
else
hints.ai_family = AF_INET;
addrinfo *result;
int error_id = getaddrinfo(argv[1], "daytime", &hints, &result);
if (error_id) {
fprintf(stderr, "%s\n", gai_strerror(error_id));
exit(1);
}
printf("%s\n", result->ai_canonname);
freeaddrinfo(result);
return 0;
}
// 越水
// greentea@xxxxxxxxxxxxxxxx