我需要一個C++中的小程序,它將類型和主機名作爲命令行參數,然後進行DNS查找。例如:如何在C++中進行DNS AAAA,CNAME和SRV查找?
DNSapp AAAA www.google.com
會從www.google.com等返回IPv6地址。
我可以通過使用gethostbyname來做簡單的查找,但我不知道如何執行其他查找。我試圖谷歌他們,但沒有成功。任何想法如何做到這一點?
我需要一個C++中的小程序,它將類型和主機名作爲命令行參數,然後進行DNS查找。例如:如何在C++中進行DNS AAAA,CNAME和SRV查找?
DNSapp AAAA www.google.com
會從www.google.com等返回IPv6地址。
我可以通過使用gethostbyname來做簡單的查找,但我不知道如何執行其他查找。我試圖谷歌他們,但沒有成功。任何想法如何做到這一點?
gethostbyname
已過時,請使用getaddrinfo
查找A/AAAA
查找。
對於SRV
等我推薦ldns
,或相關的libunbound
。後者是圖書館的完整解決方案。
您也可以使用Linux標準庫中的res_search
。
在Windows上,GetAddrInfoW
是gethostbyname的正確多值版本。
對於RDNS,getnameinfo
是另一種方式。
GetAddrInfoEx
可能會或可能不會使用SRV記錄,我一直無法找到答案。
你在哪個平臺上?在Windows/MacOS的/ BSD/Linux呢? – Ben 2012-02-27 11:21:16
我在Linux上編程 – zaplec 2012-02-27 11:27:24
getnameinfo存在於linux中用於RDNS查找。 getaddrinfo也存在,但似乎不支持SRV。 – Ben 2012-02-27 11:55:29