РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1081 of 1593 menu

Функция net.LookupIP

Функция net.LookupIP выполняет DNS-запрос для получения IP-адресов, связанных с указанным доменным именем. В качестве первого параметра она принимает контекст context.Context, который позволяет управлять временем выполнения запроса, и строку с доменным именем. Возвращает функция два значения: слайс IP-адресов типа []net.IP и ошибку типа error, которая будет равна nil при успешном выполнении.

Синтаксис

ips, err := net.LookupIP(context.Background(), "domain.com")

Пример

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

package main import ( "context" "fmt" "net" ) func main() { ips, err := net.LookupIP(context.Background(), "google.com") if err != nil { fmt.Println("Error:", err) return } for _, ip := range ips { fmt.Println(ip) } }

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

"142.250.186.46" "2a00:1450:4010:a0c::8b"

Пример

Давайте выполним поиск IP-адресов для локального хоста:

package main import ( "context" "fmt" "net" ) func main() { ips, err := net.LookupIP(context.Background(), "localhost") if err != nil { fmt.Println("Error:", err) return } for _, ip := range ips { fmt.Println(ip) } }

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

"127.0.0.1" "::1"

Пример

Давайте выполним поиск IP-адресов с использованием контекста с таймаутом:

package main import ( "context" "fmt" "net" "time" ) func main() { ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) defer cancel() ips, err := net.LookupIP(ctx, "example.com") if err != nil { fmt.Println("Error:", err) return } for _, ip := range ips { fmt.Println(ip) } }

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

"93.184.216.34" "2606:2800:220:1:248:1893:25c8:1946"

Пример

Давайте обработаем ошибку при поиске несуществующего домена:

package main import ( "context" "fmt" "net" ) func main() { ips, err := net.LookupIP(context.Background(), "nonexistent.domain.xyz") if err != nil { fmt.Println("Error:", err) return } for _, ip := range ips { fmt.Println(ip) } }

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

"Error: lookup nonexistent.domain.xyz: no such host"

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

  • функцию net.LookupHost,
    которая выполняет поиск хостов и возвращает строковые адреса
  • функцию net.LookupAddr,
    которая выполняет обратный DNS-поиск IP-адреса
  • функцию net.LookupCNAME,
    которая возвращает каноническое имя для хоста
  • функцию net.ParseIP,
    которая преобразует строку в IP-адрес
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить