>백엔드 개발 >Golang >Go의 표준 라이브러리가 조회 기능을 위해 사용자 정의 DNS 서버를 지정할 수 있습니까?

Go의 표준 라이브러리가 조회 기능을 위해 사용자 정의 DNS 서버를 지정할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-29 21:58:11213검색

Can Go's Standard Library Specify a Custom DNS Server for Lookup Functions?

Go의 조회 가능 기능 서버 지정?*

Go의 dnsclient 라이브러리는 /etc/resolv에서 구성을 원활하게 로드합니다. .conf, 필수 DNS 기능을 제공합니다. 그러나 특정 시나리오에서는 특정 DNS 서버를 활용해야 합니다. Go 표준 라이브러리는 /etc/resolv.conf의 무결성을 유지하면서 기본 DNS 서버를 재정의할 수 있는

func LookupTXT(name string, dnsServer string) (txt []string, err error)

과 유사한 메커니즘을 제공합니까?

솔루션

Go에서 제공하는 DNS 클라이언트는 DNS 확인 중에 서버 지정을 직접 지원하지 않지만 이를 달성하기 위한 대체 접근 방식이 있습니다. 기능. 실행 가능한 옵션 중 하나는 miekg에서 개발한 포괄적인 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)
    }
}

이 코드를 실행하면 대상 도메인에 대해 확인된 IP 주소를 얻어 효과적인 사용을 입증할 수 있습니다. 시스템의 기본 구성을 손상시키지 않고 지정된 DNS 서버의.

위 내용은 Go의 표준 라이브러리가 조회 기능을 위해 사용자 정의 DNS 서버를 지정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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