[golang]Go net.lookup包

  • 2019 年 10 月 7 日
  • 筆記

 DNS (Domain Name System 的縮寫)的作用非常簡單,就是根據域名查出IP地址。 域名系統(通常被稱為「DNS」)是一個網絡系統,允許我們把對人類友好的名稱解析為唯一的地址。 Internet 上的所有計算機,從您的智能手機或筆記本電腦到可提供大量零售網站內容的服務器,均通過使用編號尋找另一方並相互通信。 這些編號稱為 IP 地址。當您打開 Web 瀏覽器並前往一個網站時,您不必記住和輸入長編號。 而是輸入域名 (入 example.com),然後在正確的IP地址獲取數據。 你可以把它想像成一本巨大的電話本。下面圖片將展示DNS的工作原理. 

 Go語言中

package main    import (      "fmt"      "net"  )    func main() {      //查找DNS A記錄      iprecords, _:=net.LookupIP("landv.cn")      for _,ip:=range iprecords{          fmt.Println(ip)      }      //查找DNS CNAME記錄      canme, _:=net.LookupCNAME("www.baidu.com")      fmt.Println(canme)      //查找DNS PTR記錄      ptr,e :=net.LookupAddr("8.8.8.8")      if e != nil {          fmt.Println(e)      }      for _, ptrval:=range ptr{          fmt.Println(ptrval)      }      //查找DNS NS記錄      nameserver,_:=net.LookupNS("baidu.com")      for _,ns :=range nameserver{          fmt.Println("ns記錄",ns)      }      //查找DNS MX記錄      mxrecods,_ :=net.LookupMX("google.com")      for _,mx :=range mxrecods{          fmt.Println("mx:",mx)      }      //查找DNS TXT記錄      txtrecords, _ := net.LookupTXT("baidu.com")        for _, txt := range txtrecords {          fmt.Println("txt:",txt)      }  }

運行結果

185.199.111.153  185.199.108.153  185.199.109.153  185.199.110.153  www.a.shifen.com.  dns.google.  ns記錄 &{dns.baidu.com.}  ns記錄 &{ns7.baidu.com.}  ns記錄 &{ns2.baidu.com.}  ns記錄 &{ns3.baidu.com.}  ns記錄 &{ns4.baidu.com.}  mx: &{aspmx.l.google.com. 10}  mx: &{alt1.aspmx.l.google.com. 20}  mx: &{alt2.aspmx.l.google.com. 30}  mx: &{alt3.aspmx.l.google.com. 40}  mx: &{alt4.aspmx.l.google.com. 50}  txt: v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr -all  txt: google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM