第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析類型域名。斷續(xù)器

解析類型域名。斷續(xù)器

Go
GCT1015 2022-09-19 14:57:40
我是Go的新手,并試圖讓一個小型DNS程序工作,解析返回的A和CNAME記錄。這是在使用 github.com/miekg/dns 包。我無法理解如何正確解析 A 或 CNAME 的返回資源記錄。對于 A 記錄,我想獲取 IP 地址并將其存儲在變量中。對于返回了多個 RR 的 CNAME,我想解析“名稱”和“地址”字段并存儲在變量中。我嘗試過將結(jié)構(gòu)轉(zhuǎn)換為字符串或?qū)⑵浣鈮嚎s,但無濟于事。任何人都可以提供任何見解,非常感謝。下面是下面的代碼。文本文件包含一行帶有“www”:package mainimport (    "bufio"    "fmt"    "log"    "os"    "github.com/miekg/dns")func dns_request_fwd(s string) []dns.RR {    //fmt.Println(s, " : started processing DNS request")    m1 := new(dns.Msg)    m1.Id = dns.Id()    m1.RecursionDesired = true    m1.Question = make([]dns.Question, 1)    m1.Question[0] = dns.Question{s, dns.TypeA, dns.ClassINET}    in, err := dns.Exchange(m1, "8.8.8.8:53")    if err != nil {        log.Fatal(err)    }    if len(in.Answer) > 0 {        //fmt.Println("Response greater than 0 - got something!")        //fmt.Println(in.Answer)    } else {        //fmt.Println("Empty DNS Response")        return nil    }    if _, ok := in.Answer[0].(*dns.A); ok {        //fmt.Println("Detected an 'A' record Answer.  Returning RR!")        return in.Answer    } else if _, ok := in.Answer[0].(*dns.CNAME); ok {        //fmt.Println("Detected a 'CNAME' record Answer.  Returning RR!")        return in.Answer    } else {        fmt.Println("Returning nil")        return nil    }}func main() {    f, err := os.Open("list4.txt")    if err != nil {        log.Fatal(err)    }    defer f.Close()    domain := "acme.com"    domain_lookup := "." + domain + "."     scanner := bufio.NewScanner(f)    for scanner.Scan() {    a_record := scanner.Text()    lookup := a_record+domain_lookup    fmt.Println("Looking up: ", lookup)    dreq := dns_request_fwd(lookup)
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

您不需要“解析”結(jié)構(gòu)。該庫已經(jīng)解析了響應,以便為您提供結(jié)構(gòu)。只需使用結(jié)構(gòu)中包含所需數(shù)據(jù)的字段,如 dns。A.A,這是一張網(wǎng)。IP 或域名。別名。目標是字符串。有關(guān)更多詳細信息,請參閱包文檔。

if arec, ok := dreq[0].(*dns.A); ok {

    fmt.Println("    [+] Type is A")

    fmt.Println("    [+] Answer: ", arec.A)

}


查看完整回答
反對 回復 2022-09-19
  • 1 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號