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

Тип net.IP

Тип net.IP представляет IP-адрес в виде среза байтов. Он поддерживает как IPv4 (4 байта), так и IPv6 (16 байт) адреса. Этот тип является основным для работы с IP-адресами в Go и предоставляет методы для преобразования в строку, проверки типа адреса и сравнения.

Создание IP-адреса с помощью ParseIP

Функция net.ParseIP преобразует строковое представление IP-адреса в тип net.IP. Если строка не является корректным адресом, функция возвращает nil.

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

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

"192.168.1.1"

Создание IP-адреса из байтов

Тип net.IP является псевдонимом для []byte, поэтому его можно создать напрямую из среза байтов.

package main import ( "fmt" "net" ) func main() { ip := net.IP{192, 168, 1, 1} fmt.Println(ip) }

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

"192.168.1.1"

Проверка типа адреса

Метод IsLoopback проверяет, является ли адрес локальным (127.0.0.1 для IPv4 или ::1 для IPv6).

package main import ( "fmt" "net" ) func main() { ip := net.ParseIP("127.0.0.1") res := ip.IsLoopback() fmt.Println(res) }

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

true

Проверка IPv4

Метод To4 преобразует адрес в IPv4. Если адрес не является IPv4, метод возвращает nil.

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

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

"192.168.1.1"

Сравнение IP-адресов

Метод Equal проверяет равенство двух IP-адресов. Он учитывает, что IPv4 адрес может быть представлен как IPv6 совместимый адрес.

package main import ( "fmt" "net" ) func main() { ip1 := net.ParseIP("192.168.1.1") ip2 := net.ParseIP("192.168.1.1") res := ip1.Equal(ip2) fmt.Println(res) }

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

true

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

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