Функция net.LookupHost

Функция net.LookupHost выполняет DNS-запрос для указанного имени хоста и возвращает список его IP-адресов. В первый параметр передается имя хоста в виде строки (например, "example.com" или "localhost"), а результатом работы являются срез строк с IP-адресами и ошибка, которая может возникнуть при выполнении запроса.

Синтаксис

gonet.LookupHost(host)

Пример

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

gopackage main

import (
  "fmt"
  "net"
)

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

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

go["142.250.185.78" "2a00:1450:4010:c1b::64"]

Пример

Попробуем получить IP-адреса для локального хоста:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  ips, err := net.LookupHost("localhost")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(ips)
}

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

go["127.0.0.1" "::1"]

Пример

Обработаем случай, когда хост не существует:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  ips, err := net.LookupHost("nonexistent.example.com")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(ips)
}

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

go"lookup nonexistent.example.com: no such host"

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

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