Функция 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-адрес