【发布时间】:2016-02-19 20:57:57
【问题描述】:
我目前正在使用“列出本地网络中的内容”工具,现在我被困在“给我这个 IP 的主机名”部分。
我已经尝试过 getnameinfo 和 gethostbyaddr,但是第一个(几乎)总是返回给定的 IP 而不是主机名,第二个返回一些奇怪的东西,例如 ANantes-651-1-49-net.w2-0.abo.wanadoo.fr...
我的问题是:我怎样才能做到这一点?
注意:并不是没有与至少一个 IP 关联的主机名,例如 dig +short -x 192.168.178.1 返回 fritz.box. 应该如此,host 192.168.178.1 也给出了正确答案
1.178.168.192.in-addr.arpa domain name pointer fritz.box.
附加说明:在我的研究中,我偶然发现了一个名为“adns”的库,但“偶然发现”的意思是“几乎字面上偶然发现”,因为没有任何文档、示例等的痕迹。 . 所以如果有人真的有一个关于如何使用“adns”的例子,那就太好了......
【问题讨论】:
-
您能否说明如何将用作参数的地址设置为
gethostbyaddr()?您意识到此“ANantes-651-1-49-net.w2-0.abo.wanadoo.fr”解析为 2.0.0.0,反之亦然,不是吗。所以你的论点有可能是错误的。 -
... sockaddr_in address; memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = inet_addr("192.168.178.1"); struct hostent *h =gethostbyaddr((const void *)&address, sizeof(address), AF_INET); ... -
当...我如何在 cmets 中使用换行符?是的,我用
dig检查了“主机名”,看到了这个奇怪的2.0.0.0...
标签: c++ networking dns reverse-dns