Функция net.ParseIP
Функция net.ParseIP преобразует строковое представление IP-адреса
в объект типа net.IP. Она принимает один параметр - строку с
IP-адресом в формате IPv4 (например, "192.0.2.1") или IPv6
(например, "2001:db8::68"). Если переданная строка не является
корректным IP-адресом, функция возвращает nil.
Синтаксис
net.ParseIP(ipAddr)
Пример
Давайте разберем корректный IPv4-адрес:
package main
import (
"fmt"
"net"
)
func main() {
ip := net.ParseIP("192.168.1.1")
fmt.Println(ip)
}
Результат выполнения кода:
"192.168.1.1"
Пример
Давайте разберем корректный IPv6-адрес:
package main
import (
"fmt"
"net"
)
func main() {
ip := net.ParseIP("2001:db8::68")
fmt.Println(ip)
}
Результат выполнения кода:
"2001:db8::68"
Пример
Давайте проверим, как функция реагирует на некорректный IP-адрес:
package main
import (
"fmt"
"net"
)
func main() {
ip := net.ParseIP("invalid-ip")
fmt.Println(ip)
}
Результат выполнения кода:
"<nil>"
Пример
Давайте используем функцию для проверки типа IP-адреса (IPv4 или IPv6):
package main
import (
"fmt"
"net"
)
func main() {
ip := net.ParseIP("192.168.1.1")
if ip != nil {
if ip.To4() != nil {
fmt.Println("IPv4")
} else {
fmt.Println("IPv6")
}
} else {
fmt.Println("invalid IP")
}
}
Результат выполнения кода:
"IPv4"
Смотрите также
-
функцию
net.LookupIP,
которая выполняет DNS-запрос для получения IP-адресов хоста -
функцию
net.ParseCIDR,
которая разбирает адрес в формате CIDR -
тип
net.IP,
который представляет IP-адрес в байтовом представлении -
метод
net.IP.String,
который преобразует объект net.IP обратно в строку