dns 正向解析

CNAME 被称为规范名字。这种记录允许您将多个名字映射到同一台计算机。 通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“r0WSPFSx58.”(A记录)。 它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。

域名解析到cname

  1. func LookupCNAME(name string) (cname string, err error)

域名解析到地址

  1. func LookupHost(host string) (addrs []string, err error)

域名解析到地址[]IP结构体.可以对具体ip进行相关操作(是否回环地址,子网,网络号等)

  1. func LookupIP(host string) (addrs []IP, err error)

dns 反向解析

  1. // 根据ip地址查找主机名地址(必须得是可以解析到的域名)[dig -x ipaddress]
  2. func LookupAddr(addr string) (name []string, err error)

应用

  1. package main
  2. import (
  3. "fmt"
  4. "net"
  5. )
  6. func main() {
  7. // 域名改成自己要测试的
  8. dns := "www.google.com"
  9. // 解析cname
  10. cname, _ := net.LookupCNAME(dns)
  11. fmt.Println("cname:", cname)
  12. // 解析ip地址
  13. ips, err := net.LookupHost(dns)
  14. if err != nil {
  15. fmt.Println("Err: ", err.Error())
  16. return
  17. }
  18. fmt.Println(ips)
  19. // 反向解析(主机必须得能解析到地址), IP地址改成你的
  20. dnsName, _ := net.LookupAddr("221.181.204.234")
  21. fmt.Println("Hostname:", dnsName)
  22. }