我目前正在研究「列出本地網絡中出現的問題」工具,現在我被困在「爲此IP提供主機名」這一部分。C++反向dns查找(在本地網絡上)
我已經嘗試過,則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,反之亦然,不是。所以有可能你的論點可能有誤。 – Paulo1205
'... sockaddr_in address; memset(&address,0,sizeof(address)); memset 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); ...' – user3128045
當...如何在評論中使用換行符?而且,是的,我用'dig'查看了「hostname」,並看到了這個奇怪的'2.0.0.0' ... – user3128045