Функция net.ParseIP

Функция net.ParseIP преобразует строковое представление IP-адреса в объект типа net.IP. Она принимает один параметр - строку с IP-адресом в формате IPv4 (например, "192.0.2.1") или IPv6 (например, "2001:db8::68"). Если переданная строка не является корректным IP-адресом, функция возвращает nil.

Синтаксис

gonet.ParseIP(ipAddr)

Пример

Давайте разберем корректный IPv4-адрес:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  ip := net.ParseIP("192.168.1.1")
  fmt.Println(ip)
}

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

go"192.168.1.1"

Пример

Давайте разберем корректный IPv6-адрес:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  ip := net.ParseIP("2001:db8::68")
  fmt.Println(ip)
}

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

go"2001:db8::68"

Пример

Давайте проверим, как функция реагирует на некорректный IP-адрес:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  ip := net.ParseIP("invalid-ip")
  fmt.Println(ip)
}

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

go"<nil>"

Пример

Давайте используем функцию для проверки типа IP-адреса (IPv4 или IPv6):

gopackage 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")
  }
}

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

go"IPv4"

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

  • функцию net.LookupIP,
    которая выполняет DNS-запрос для получения IP-адресов хоста
  • функцию net.ParseCIDR,
    которая разбирает адрес в формате CIDR
  • тип net.IP,
    который представляет IP-адрес в байтовом представлении
  • метод net.IP.String,
    который преобразует объект net.IP обратно в строку