【发布时间】:2015-12-18 18:46:28
【问题描述】:
我有一个 IP 地址 5.5.5.5,并且有两个主机名指向它。
从命令行
主机 5.5.5.5
DNS.in-addr.arpa 域名指针地址1.test.com.
DNS.in-addr.arpa 域名指针地址2.test.com.
nslookup 5.5.5.5
服务器:dns.test.com
地址:dns.test.com
非权威回答:
DNS.in-addr.arpa 名称 = address1.test.com。
DNS.in-addr.arpa 名称 = address2.test.com。
我正在尝试在 c/c++ 中实现这种类型的功能。当我使用 getnameinfo() 时,它只返回 address1.test.com 或 address2.test.com。
我的问题是在一次调用中同时获取这两个 DNS 名称吗? nslookup 和主机如何做到这一点?
代码:
char host[1024];
std::string inputAddress = "5.5.5.5";
struct sockaddr_in socketAddress;
socketAddress.sin_family = AF_INET;
inet_pton(AF_INET, inputAddress.c_str(), &(socketAddress.sin_addr));
getnameinfo((struct sockaddr *)&socketAddress, sizeof(socketAddress), host, 1024, NULL, NULL, 0);
printf("host=%s \n", host);
【问题讨论】:
-
您可以通过编辑您的问题来提供您的代码吗?
-
C语言中没有
std::string
标签: c sockets dns network-programming hostname