Функция net.LookupNS

Функция net.LookupNS выполняет DNS-запрос к системному резолверу для получения NS-записей указанного домена. В единственный параметр функция принимает строку с именем домена (например, "example.com"). Возвращает она два значения: слайс структур типа *net.NS и ошибку error. В случае успешного выполнения запроса слайс будет содержать одну или несколько NS-записей, каждая из которых имеет поле Host с именем сервера имен. Если домен не существует или не имеет NS-записей, функция вернет ошибку типа *net.DNSError.

Синтаксис

gonsRecords, err := net.LookupNS(domain)

Пример

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

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  nsRecords, err := net.LookupNS("google.com")
  if err != nil {
    fmt.Printf("Error: %v\n", err)
    return
  }

  for _, ns := range nsRecords {
    fmt.Printf("NS: %s\n", ns.Host)
  }
}

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

go"NS: ns1.google.com."
"NS: ns2.google.com."
"NS: ns3.google.com."
"NS: ns4.google.com."

Пример

Теперь проверим ситуацию с несуществующим доменом:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  nsRecords, err := net.LookupNS("nonexistent-domain-12345.xyz")
  if err != nil {
    fmt.Printf("Error: %v\n", err)
    return
  }

  for _, ns := range nsRecords {
    fmt.Printf("NS: %s\n", ns.Host)
  }
}

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

go"Error: lookup nonexistent-domain-12345.xyz: no such host"

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

  • функцию net.LookupHost,
    которая возвращает IP-адреса хоста
  • функцию net.LookupMX,
    которая возвращает MX-записи домена
  • функцию net.LookupTXT,
    которая возвращает TXT-записи домена
  • функцию net.LookupCNAME,
    которая возвращает каноническое имя хоста