Я ищу способ (в Go) получить CNAME (если есть) данного хоста, независимо от того, происходит ли разрешение DNS этого хоста или нет .
Разрешение DNS хоста может дать сбой и привести к NXDOMAIN
, но у рассматриваемого хоста все еще может быть запись CNAME. На момент написания этого вопроса tst1crmapps.starbucks.com
является примером такого хоста:
$ dig tst1crmapps.starbucks.com | grep -E 'NXDOMAIN|CNAME'
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 50444
tst1crmapps.starbucks.com. 86400 IN CNAME bigip-tst1crmapps-starbucks.oracle.com.
(работает на macOS)
Функция net.LookupCNAME
, кажется, мне подходит, но он не может вернуть CNAME, если разрешение DNS-узла не удается. Запуск
package main
import (
"log"
"net"
)
func main() {
cname, err := net.LookupCNAME("tst1crmapps.starbucks.com")
if err != nil {
log.Fatal(err)
}
log.Println(cname)
}
выходы
yyyy/MM/dd hh:mm:ss lookup tst1crmapps.starbucks.com: no such host
Я неправильно понимаю net.LookupCNAME
? Или я использую не ту функцию?