我有一个IP地址5.5.5.5,有两个主机名指向它。
从命令行
主持人5.5.5.5
DNS.in-addr.arpa域名指针address1.test.com。
DNS.in-addr.arpa域名指针address2.test.com。
nslookup 5.5.5.5
服务器:dns.test.com
地址:dns.test.com
非权威性答案:
DNS.in-addr.arpa name = address1.test.com。
DNS.in-addr.arpa name = address2.test.com。
我试图在c / c ++中实现这种类型的功能。当我使用getnameinfo()时,它只返回address1.test.com或address2.test.com。
我的问题是在一次通话中获取这两个DNS名称? nslookup和host如何做到这一点?
代码:
&mut Command
答案 0 :(得分:4)
没有。 getnameinfo()
接口只能返回一个名称 - 它无法返回多个结果。返回多个PTR记录时,其行为未定义;在实践中,大多数实现可能会使用他们看到的第一个。
请记住there should only be one PTR record (and, thus, one canonical hostname) for any given IP。虽然可以将多个A / AAAA名称解析为单个IP,但只有其中一个名称应出现在PTR记录中。