dns 正向解析
CNAME 被称为规范名字。这种记录允许您将多个名字映射到同一台计算机。 通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“r0WSPFSx58.”(A记录)。 它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。
域名解析到cname
func LookupCNAME(name string) (cname string, err error)
域名解析到地址
func LookupHost(host string) (addrs []string, err error)
域名解析到地址[]IP结构体.可以对具体ip进行相关操作(是否回环地址,子网,网络号等)
func LookupIP(host string) (addrs []IP, err error)
dns 反向解析
// 根据ip地址查找主机名地址(必须得是可以解析到的域名)[dig -x ipaddress]
func LookupAddr(addr string) (name []string, err error)
应用
package main
import (
"fmt"
"net"
)
func main() {
// 域名改成自己要测试的
dns := "www.google.com"
// 解析cname
cname, _ := net.LookupCNAME(dns)
fmt.Println("cname:", cname)
// 解析ip地址
ips, err := net.LookupHost(dns)
if err != nil {
fmt.Println("Err: ", err.Error())
return
}
fmt.Println(ips)
// 反向解析(主机必须得能解析到地址), IP地址改成你的
dnsName, _ := net.LookupAddr("221.181.204.234")
fmt.Println("Hostname:", dnsName)
}