Функция net.LookupTXT

Функция net.LookupTXT выполняет поиск TXT-записей DNS для переданного имени хоста. В первый параметр передается доменное имя в виде строки. Функция возвращает слайс строк []string с найденными TXT-записями и ошибку error, если запрос не удался. TXT-записи часто используются для хранения различных текстовых данных, таких как SPF-записи, ключи проверки домена и другие метаданные.

Синтаксис

gofunc LookupTXT(host string) ([]string, error)

Пример

Давайте выполним базовый запрос TXT-записей для домена "example.com":

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  txtRecords, err := net.LookupTXT("example.com")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  fmt.Println(txtRecords)
}

Результат выполнения кода (записи могут отличаться):

go["v=spf1 -all"]

Пример

Давайте получим все TXT-записи и выведем каждую из них по отдельности:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  txtRecords, err := net.LookupTXT("google.com")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  for i, record := range txtRecords {
    fmt.Printf("Record %d: %s\n", i+1, record)
  }
}

Результат выполнения кода:

go"Record 1: v=spf1 include:_spf.google.com ~all"
"Record 2: google-site-verification=..."

Пример

Попробуем обратиться к несуществующему домену и обработаем ошибку:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  txtRecords, err := net.LookupTXT("nonexistent.domain.xyz")
  if err != nil {
    fmt.Println("Error occurred:", err)
    return
  }

  fmt.Println("Records:", txtRecords)
}

Результат выполнения кода:

go"Error occurred: lookup nonexistent.domain.xyz on 8.8.8.8:53: no such host"

Смотрите также

  • функцию net.LookupMX,
    которая возвращает MX-записи для домена
  • функцию net.LookupNS,
    которая возвращает NS-записи для домена
  • функцию net.LookupCNAME,
    которая возвращает каноническое имя хоста
  • функцию net.LookupAddr,
    которая выполняет обратный поиск по IP-адресу