>백엔드 개발 >Golang >Go에서 DNS 조회를 위해 사용자 정의 DNS 서버를 지정하는 방법은 무엇입니까?

Go에서 DNS 조회를 위해 사용자 정의 DNS 서버를 지정하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-05 05:06:10764검색

How to Specify a Custom DNS Server for DNS Lookups in Go?

사용자 정의 DNS 서버 사양을 위한 Golang의 조회 기능 대안

Go 표준 라이브러리는 현재 LookupTXT(name, dnsServer)를 사용하면 사용자가 DNS 조회를 수행할 때 사용자 지정 DNS 서버를 지정할 수 있습니다. 조회*. 표준 라이브러리에서 사용 가능한 기능은 /etc/resolv.conf에 제공된 구성에만 의존합니다.

사용자 정의 DNS 서버를 지정하는 유연성이 필요한 경우 github.com/과 같은 타사 라이브러리 활용을 고려하십시오. miekg/dns. 이 라이브러리는 사용자 정의 DNS 서버를 지정하는 기능을 포함하여 DNS 조회를 수행하기 위한 가볍고 포괄적인 기능 세트를 제공합니다. github.com/miekg/dns를 사용하여 사용자 정의 DNS 서버로 DNS 조회를 수행하는 예는 다음과 같습니다.

import (
    "log"

    "github.com/miekg/dns"
)

func main() {
    target := "microsoft.com"
    server := "8.8.8.8"

    c := dns.Client{}
    m := dns.Msg{}
    m.SetQuestion(target+".", dns.TypeA)
    r, t, err := c.Exchange(&m, server+":53")
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Took %v", t)
    if len(r.Answer) == 0 {
        log.Fatal("No results")
    }
    for _, ans := range r.Answer {
        Arecord := ans.(*dns.A)
        log.Printf("%s", Arecord.A)
    }
}

위 내용은 Go에서 DNS 조회를 위해 사용자 정의 DNS 서버를 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.