亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

golang如何獲取域名ip?dns信息

 更新時間:2025年07月03日 09:50:31   作者:alden_ygq  
這篇文章主要介紹了golang如何獲取域名ip?dns信息問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Go語言查找DNS A記錄

A (Address) 記錄是用來指定主機名(或域名)對應(yīng)的IP地址記錄. 用戶可以將該域名下的網(wǎng)站服務(wù)器指向到自己的web server上. 同時也可以設(shè)置您域名的二級域名.

使用 Go 語言的標(biāo)準(zhǔn)庫 net.LookupIP() 接受域名的字符串參數(shù),返回 net.IP的切片. 這個 net.IP 對象包含IPv4地址和IPv6地址.

package main


import (

    "fmt"

    "net"

)


func main() {

    iprecords, _ := net.LookupIP("mojotv.cn")

    for _, ip := range iprecords {

        fmt.Println(ip)

    }

}

上面代碼返回的facebook域名的IPv4和IPv6地址:

C:\golang\mojotv.cn>go run golang_dns_example.go

2a03:2880:f12f:83:face:b00c:0:25de

31.13.79.35

Go語言查找DNSCNAME記錄

CNAME(縮寫canonical name)記錄,即:別名記錄.這種記錄允許您將多個名字映射到同一臺計算機. 通常用于同時提供WWW和MAIL服務(wù)的計算機.例如,有一臺計算機名為“host.mydomain.com”(A記錄). 它同時提供WWW和MAIL服務(wù),為了便于用戶訪問服務(wù).可以為該計算機設(shè)置兩個別名(CNAME):WWW和MAIL.

使用Go語言標(biāo)準(zhǔn)庫net.LookupCNAME()根據(jù)域名字符串查詢DNS CNAME 記錄值.

package main


import (

    "fmt"

    "net"

)


func main() {

    cname, _ := net.LookupCNAME("m.facebook.com")

    fmt.Println(cname)
    
}

返回m.facebook.com 的 DNS CNAME 記錄值出輸結(jié)果如下:

C:\golang\mojotv.cn>go run dns_cname_example.go

star-mini.c10r.facebook.com.

Go語言查找DNS PTR記錄

PTR記錄,是電子郵件系統(tǒng)中的郵件交換記錄的一種;另一種郵件交換記錄是A記錄(在IPv4協(xié)議中)或AAAA記錄(在IPv6協(xié)議中).PTR記錄常被用于反向地址解析. 根據(jù)一個IP值,查找映射的域名值,不一定沒有ip地址都回生效,DNS的IP地址可以查到.

DNS PTR用途

  • PTR記錄被用于電子郵件發(fā)送過程中的反向地址解析.
  • 當(dāng)正向域名解析完成后,還應(yīng)當(dāng)向您的線路接入商(ISP)申請做反向地址解析,以減少被國外機構(gòu)退信的可能性.

使用Go語言標(biāo)準(zhǔn)庫net.LookupAddr()函數(shù)對地址執(zhí)行反向查找,并返回映射到給定地址的名稱列表.

package main


import (

    "fmt"

    "net"

)


func main() {

    ptr, err := net.LookupAddr("114.114.114.114")

    if err != nil {

        fmt.Println(err)

    }

    for _, ptrvalue := range ptr {

        fmt.Println(ptrvalue)

    }

}

查找dns的返回值如下

C:\golang\dns>go run example3.go

public1.114dns.com.

Go語言查找DNS NS記錄

NS記錄此記錄指定負(fù)責(zé)此DNS區(qū)域的權(quán)威名稱服務(wù)器. A記錄和NS記錄的區(qū)別是,A記錄直接給出目的IP, NS記錄將DNS解析任務(wù)交給特定的服務(wù)器, NS記錄中記錄的IP即為該特定服務(wù)器的IP地址.

使用Go語言標(biāo)準(zhǔn)庫net.LookupNS()函數(shù)對域名執(zhí)行反向查找,并返回負(fù)責(zé)此域名DNS-NS記錄切片.

package main


import (

    "fmt"

    "net"

)


func main() {

    nameserver, _ := net.LookupNS("baidu.com")

    for _, ns := range nameserver {

        fmt.Println(ns)

    }

}

結(jié)果如下

C:\golang\mojotv.cn>go run dsn_ns_example.go

&{ns3.baidu.com.}

&{ns4.baidu.com.}

&{ns7.baidu.com.}

&{dns.baidu.com.}

&{ns2.baidu.com.}

Go語言查找DNS MX記錄

郵件交換記錄 (MX record)是域名系統(tǒng)(DNS)中的一種資源記錄類型,用于指定負(fù)責(zé)處理發(fā)往收件人域名的郵件服務(wù)器. MX記錄允許設(shè)置一個優(yōu)先級,當(dāng)多個郵件服務(wù)器可用時,會根據(jù)該值決定投遞郵件的服務(wù)器.簡單郵件傳輸協(xié)議(SMTP)會根據(jù)MX記錄的值來決定郵件的路由過程.

使用Go語言標(biāo)準(zhǔn)庫 net.LookupMX 函數(shù)將域名作為字符串,并返回按首選項排序的MX 結(jié)構(gòu)體的切片. MX結(jié)構(gòu)由主機作為string組成,Pref是uint16.

package main


import (

    "fmt"

    "net"

)


func main() {

    mxrecords, _ := net.LookupMX("baidu.com")

    for _, mx := range mxrecords {

        fmt.Println(mx.Host, mx.Pref)
    
    }

}

域名(baidu.com)的輸出列表MX記錄

C:\golang\mojotv.cn>go run golang_dns_mx_example.go

mx.maillb.baidu.com. 10

mx.n.shifen.com. 15

mx1.baidu.com. 20

jpmx.baidu.com. 20

mx50.baidu.com. 20

Go語言查找DNS SRV記錄

SRV記錄(英語:Service Record,中文又名服務(wù)定位記錄)是域名系統(tǒng)中用于指定服務(wù)器提供服務(wù)的位置(如主機名和端口)數(shù)據(jù).此數(shù)據(jù)于RFC 2782中定義,類型代碼為33. 部分協(xié)議,如會話發(fā)起協(xié)議(SIP)及可擴展消息與存在協(xié)議(XMPP)通常需要服務(wù)記錄的支持.

Go語言標(biāo)準(zhǔn)庫LookupSRV函數(shù)嘗試指定服務(wù)的SRV查詢,協(xié)議和域名的SRV查詢. 第二個參數(shù)是“tcp”或“udp”. 返回的記錄按優(yōu)先級排序,并按優(yōu)先級在權(quán)重隨機分配.

package main


import (

    "fmt"

    "net"

)


func main() {

    cname, srvs, err := net.LookupSRV("xmpp-server", "tcp", "golang.org")

    if err != nil {

        panic(err)

    }


    fmt.Printf("\ncname: %s \n\n", cname)


    for _, srv := range srvs {

        fmt.Printf("%v:%v:%d:%d\n", srv.Target, srv.Port, srv.Priority, srv.Weight)

    }

}

下面的輸出演示了CNAME返回,后跟SRV記錄目標(biāo),端口,優(yōu)先級和由冒號分隔的權(quán)重.

C:\golang\mojotv.cn>go run golang_dns_srv_example.go

cname: _xmpp-server._tcp.golang.org.

Go語言查找DNS TXT記錄

TXT記錄用來保存域名的附加文本信息,TXT記錄的內(nèi)容按照一定的格式編寫,最常用的是SPF格式,SPF用于登記某個域名擁有的用來外發(fā)郵件的所有ip地址. MX記錄的作用是給寄信者指明某個域名的郵件服務(wù)器有哪些,SPF格式的TXT記錄的作用跟MX記錄相反,它向收信者表明,哪些郵件服務(wù)器是經(jīng)過某個域名認(rèn)可發(fā)送郵件的. SPF的作用主要是反垃圾郵件,主要針對那些發(fā)信人偽造域名的垃圾郵件.按照SPF格式在DNS中增加一條TXT類型的記錄,將提高該域名的信譽度,同時可以防止垃圾郵件偽造該域的發(fā)件人發(fā)送垃圾郵件.

Go語言標(biāo)準(zhǔn)庫 net.LookupTXT 函數(shù)將域名(baidu.com)作為字符串,并返回DNS TXT記錄列表作為字符串片段.

package main


import (

    "fmt"

    "net"

)


func main() {

    txtrecords, _ := net.LookupTXT("baidu.com")


    for _, txt := range txtrecords {

        fmt.Println(txt)

    }

}

baidu.com的txt值如下

C:\golang\mojotv>go run golang_dns_txt.go

v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr -all

google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Go語言的http/2服務(wù)器功能及客戶端使用

    Go語言的http/2服務(wù)器功能及客戶端使用

    Golang 有一個很棒的自帶 http 服務(wù)器軟件包,不用說就是: net/http, 它非常簡單,但是功能非常強大。下面這篇文章主要給大家介紹了關(guān)于Go語言的http/2服務(wù)器功能及客戶端使用的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • Go?Web實戰(zhàn)之創(chuàng)建項目及增加日志功能

    Go?Web實戰(zhàn)之創(chuàng)建項目及增加日志功能

    這篇文章主要為大家詳細(xì)介紹了Go?Web項目中如何實現(xiàn)創(chuàng)建項目及增加日志功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • 詳解Golang如何優(yōu)雅判斷interface是否為nil

    詳解Golang如何優(yōu)雅判斷interface是否為nil

    這篇文章主要為大家詳細(xì)介紹了Golang如何優(yōu)雅判斷interface是否為nil的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解下
    2024-01-01
  • 深入淺出Go語言:手把手教你高效生成與解析JSON數(shù)據(jù)

    深入淺出Go語言:手把手教你高效生成與解析JSON數(shù)據(jù)

    本文將帶你一步步走進Go語言的世界,教你如何高效生成與解析JSON數(shù)據(jù),無論你是初學(xué)者還是經(jīng)驗豐富的開發(fā)者,都能在本文中找到實用的技巧和靈感,本文內(nèi)容簡潔明了,示例豐富,讓你在閱讀的過程中輕松掌握Go語言生成與解析JSON數(shù)據(jù)的技巧,需要的朋友可以參考下
    2024-02-02
  • golang 數(shù)組隨機排序的實現(xiàn)

    golang 數(shù)組隨機排序的實現(xiàn)

    本文主要介紹了golang 數(shù)組隨機排序的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Golang TCP網(wǎng)絡(luò)編程的具體實現(xiàn)

    Golang TCP網(wǎng)絡(luò)編程的具體實現(xiàn)

    go語言是一門功能強大的編程語言,它提供了眾多的網(wǎng)絡(luò)編程庫,其中包括tcp/ip,本文主要介紹了Golang TCP網(wǎng)絡(luò)編程的具體實現(xiàn),具有一定的參考價值,感興趣的可以來了解一下
    2024-06-06
  • go語言搬磚之go jmespath實現(xiàn)查詢json數(shù)據(jù)

    go語言搬磚之go jmespath實現(xiàn)查詢json數(shù)據(jù)

    這篇文章主要為大家介紹了go語言搬磚之go jmespath實現(xiàn)查詢json數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Go語言中的變量聲明和賦值

    Go語言中的變量聲明和賦值

    這篇文章主要介紹了Go語言中的變量聲明和賦值的方法,十分的細(xì)致全面,有需要的小伙伴可以參考下。
    2015-04-04
  • Go語言如何獲取goroutine的id

    Go語言如何獲取goroutine的id

    在Go語言中,獲取?goroutine的id并不像其他編程語言那樣容易,但依然有辦法,這篇文章就來和大家聊聊具體實現(xiàn)的方法,感興趣的小伙伴可以了解下
    2024-12-12
  • golang協(xié)程設(shè)計及調(diào)度原理

    golang協(xié)程設(shè)計及調(diào)度原理

    這篇文章主要介紹了golang協(xié)程設(shè)計及調(diào)度原理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06

最新評論