Spec-Zone.ru › Go

Пакет netip

  • import "net/netip"
  • Обзор
  • Указатель

Обзор

Пакет netip определяет тип IP-адреса, представляющий собой компактный тип-значение. На основе типа Addr пакет также определяет AddrPort (IP-адрес и порт) и Prefix (IP-адрес и префикс длиной в битах).

По сравнению с типом net.IP, тип Addr занимает меньше памяти, является неизменяемым и сравнимым (поддерживает == и может использоваться в качестве ключа карты).

Указатель

  • тип Addr
  • func AddrFrom16(addr [16]byte) Addr
  • func AddrFrom4(addr [4]byte) Addr
  • func AddrFromSlice(slice []byte) (ip Addr, ok bool)
  • func IPv4Unspecified() Addr
  • func IPv6LinkLocalAllNodes() Addr
  • func IPv6LinkLocalAllRouters() Addr
  • func IPv6Loopback() Addr
  • func IPv6Unspecified() Addr
  • func MustParseAddr(s string) Addr
  • func ParseAddr(s string) (Addr, error)
  • func (ip Addr) AppendBinary(b []byte) ([]byte, error)
  • func (ip Addr) AppendText(b []byte) ([]byte, error)
  • func (ip Addr) AppendTo(b []byte) []byte
  • func (ip Addr) As16() (a16 [16]byte)
  • func (ip Addr) As4() (a4 [4]byte)
  • func (ip Addr) AsSlice() []byte
  • func (ip Addr) BitLen() int
  • func (ip Addr) Compare(ip2 Addr) int
  • func (ip Addr) Is4() bool
  • func (ip Addr) Is4In6() bool
  • func (ip Addr) Is6() bool
  • func (ip Addr) IsGlobalUnicast() bool
  • func (ip Addr) IsInterfaceLocalMulticast() bool
  • func (ip Addr) IsLinkLocalMulticast() bool
  • func (ip Addr) IsLinkLocalUnicast() bool
  • func (ip Addr) IsLoopback() bool
  • func (ip Addr) IsMulticast() bool
  • func (ip Addr) IsPrivate() bool
  • func (ip Addr) IsUnspecified() bool
  • func (ip Addr) IsValid() bool
  • func (ip Addr) Less(ip2 Addr) bool
  • func (ip Addr) MarshalBinary() ([]byte, error)
  • func (ip Addr) MarshalText() ([]byte, error)
  • func (ip Addr) Next() Addr
  • func (ip Addr) Prefix(b int) (Prefix, error)
  • func (ip Addr) Prev() Addr
  • func (ip Addr) String() string
  • func (ip Addr) StringExpanded() string
  • func (ip Addr) Unmap() Addr
  • func (ip *Addr) UnmarshalBinary(b []byte) error
  • func (ip *Addr) UnmarshalText(text []byte) error
  • func (ip Addr) WithZone(zone string) Addr
  • func (ip Addr) Zone() string
  • тип AddrPort
  • func AddrPortFrom(ip Addr, port uint16) AddrPort
  • func MustParseAddrPort(s string) AddrPort
  • func ParseAddrPort(s string) (AddrPort, error)
  • func (p AddrPort) Addr() Addr
  • func (p AddrPort) AppendBinary(b []byte) ([]byte, error)
  • func (p AddrPort) AppendText(b []byte) ([]byte, error)
  • func (p AddrPort) AppendTo(b []byte) []byte
  • func (p AddrPort) Compare(p2 AddrPort) int
  • func (p AddrPort) IsValid() bool
  • func (p AddrPort) MarshalBinary() ([]byte, error)
  • func (p AddrPort) MarshalText() ([]byte, error)
  • func (p AddrPort) Port() uint16
  • func (p AddrPort) String() string
  • func (p *AddrPort) UnmarshalBinary(b []byte) error
  • func (p *AddrPort) UnmarshalText(text []byte) error
  • тип Prefix
  • func MustParsePrefix(s string) Prefix
  • func ParsePrefix(s string) (Prefix, error)
  • func PrefixFrom(ip Addr, bits int) Prefix
  • func (p Prefix) Addr() Addr
  • func (p Prefix) AppendBinary(b []byte) ([]byte, error)
  • func (p Prefix) AppendText(b []byte) ([]byte, error)
  • func (p Prefix) AppendTo(b []byte) []byte
  • func (p Prefix) Bits() int
  • func (p Prefix) Compare(p2 Prefix) int
  • func (p Prefix) Contains(ip Addr) bool
  • func (p Prefix) IsSingleIP() bool
  • func (p Prefix) IsValid() bool
  • func (p Prefix) MarshalBinary() ([]byte, error)
  • func (p Prefix) MarshalText() ([]byte, error)
  • func (p Prefix) Masked() Prefix
  • func (p Prefix) Overlaps(o Prefix) bool
  • func (p Prefix) String() string
  • func (p *Prefix) UnmarshalBinary(b []byte) error
  • func (p *Prefix) UnmarshalText(text []byte) error

Файлы пакета

netip.go uint128.go

тип Addr 1.18

Addr представляет IPv4- или IPv6-адрес (со scoped-зоной адресации или без неё), аналогичный net.IP или net.IPAddr.

В отличие от net.IP или net.IPAddr, Addr является сравнимым типом-значением (поддерживает == и может использоваться в качестве ключа карты) и неизменяемым.

Нулевое значение Addr не является допустимым IP-адресом. Addr{} отличается и от 0.0.0.0, и от ::.

type Addr struct {
    // contains filtered or unexported fields
}

func AddrFrom16 1.18

func AddrFrom16(addr [16]byte) Addr

AddrFrom16 возвращает IPv6-адрес, заданный байтами addr. IPv4-адрес, отображённый в IPv6, остаётся IPv6-адресом. (При необходимости используйте Addr.Unmap для преобразования.)

func AddrFrom4 1.18

func AddrFrom4(addr [4]byte) Addr

AddrFrom4 возвращает адрес IPv4-адреса, заданного байтами addr.

func AddrFromSlice 1.18

func AddrFromSlice(slice []byte) (ip Addr, ok bool)

AddrFromSlice разбирает срез байтов длиной 4 или 16 как IPv4- или IPv6-адрес. Обратите внимание, что net.IP можно передать напрямую в качестве аргумента []byte. Если длина slice не равна 4 или 16, AddrFromSlice возвращает Addr{}, false.

func IPv4Unspecified 1.18

func IPv4Unspecified() Addr

IPv4Unspecified возвращает неопределённый IPv4-адрес "0.0.0.0".

func IPv6LinkLocalAllNodes 1.18

func IPv6LinkLocalAllNodes() Addr

IPv6LinkLocalAllNodes возвращает IPv6-адрес многоадресной рассылки link-local для всех узлов ff02::1.

func IPv6LinkLocalAllRouters 1.20

func IPv6LinkLocalAllRouters() Addr

IPv6LinkLocalAllRouters возвращает IPv6-адрес многоадресной рассылки link-local для всех маршрутизаторов ff02::2.

func IPv6Loopback 1.20

func IPv6Loopback() Addr

IPv6Loopback возвращает IPv6-адрес обратной петли ::1.

func IPv6Unspecified 1.18

func IPv6Unspecified() Addr

IPv6Unspecified возвращает неопределённый IPv6-адрес "::".

func MustParseAddr 1.18

func MustParseAddr(s string) Addr

MustParseAddr вызывает ParseAddr(s) и вызывает панику при ошибке. Предназначена для использования в тестах со строками, заданными непосредственно в коде.

func ParseAddr 1.18

func ParseAddr(s string) (Addr, error)

ParseAddr разбирает s как IP-адрес и возвращает результат. Строка s может быть записана в десятичной точечной нотации ("192.0.2.1"), в формате IPv6 ("2001:db8::68") или в формате IPv6 с scoped-зоной адресации ("fe80::1cc0:3e8c:119f:c2e1%ens18").

func (Addr) AppendBinary 1.24

func (ip Addr) AppendBinary(b []byte) ([]byte, error)

AppendBinary реализует интерфейс encoding.BinaryAppender.

func (Addr) AppendText 1.24

func (ip Addr) AppendText(b []byte) ([]byte, error)

AppendText реализует интерфейс encoding.TextAppender. Кодирование совпадает с результатом Addr.AppendTo.

func (Addr) AppendTo 1.18

func (ip Addr) AppendTo(b []byte) []byte

AppendTo добавляет к b текстовое представление ip, сформированное методом Addr.MarshalText, и возвращает расширенный буфер.

func (Addr) As16 1.18

func (ip Addr) As16() (a16 [16]byte)

As16 возвращает IP-адрес в 16-байтовом представлении. IPv4-адреса возвращаются как IPv4-адреса, отображённые в IPv6. IPv6-адреса с зонами возвращаются без зоны (для её получения используйте метод Addr.Zone). Нулевое значение ip возвращает набор нулей.

func (Addr) As4 1.18

func (ip Addr) As4() (a4 [4]byte)

As4 возвращает IPv4-адрес или IPv4-адрес в формате IPv6 в 4-байтовом представлении. Если ip — нулевой Addr или IPv6-адрес, As4 вызывает панику. Обратите внимание, что 0.0.0.0 не является нулевым Addr.

func (Addr) AsSlice 1.18

func (ip Addr) AsSlice() []byte

AsSlice возвращает IPv4- или IPv6-адрес в соответствующем 4- или 16-байтовом представлении.

func (Addr) BitLen 1.18

func (ip Addr) BitLen() int

BitLen возвращает количество битов в IP-адресе: 128 для IPv6, 32 для IPv4 и 0 для нулевого Addr.

Обратите внимание, что IPv4-адреса, отображённые в IPv6, считаются IPv6-адресами и поэтому имеют длину 128 бит.

func (Addr) Compare 1.18

func (ip Addr) Compare(ip2 Addr) int

Compare возвращает целое число, сравнивающее два IP-адреса. Результат равен 0, если ip == ip2, -1, если ip < ip2, и +1, если ip > ip2. Определение «меньше» совпадает с определением в методе Addr.Less.

func (Addr) Is4 1.18

func (ip Addr) Is4() bool

Is4 сообщает, является ли ip IPv4-адресом.

Возвращает false для IPv4-адресов, отображённых в IPv6. См. Addr.Unmap.

func (Addr) Is4In6 1.18

func (ip Addr) Is4In6() bool

Is4In6 сообщает, является ли ip «IPv4-адресом, отображённым в IPv6», как определено в RFC 4291. Иными словами, сообщает, входит ли ip в диапазон ::ffff:0:0/96.

func (Addr) Is6 1.18

func (ip Addr) Is6() bool

Is6 сообщает, является ли ip IPv6-адресом, включая IPv4-адреса, отображённые в IPv6.

func (Addr) IsGlobalUnicast 1.18

func (ip Addr) IsGlobalUnicast() bool

IsGlobalUnicast сообщает, является ли ip глобальным одноадресным адресом.

Метод возвращает true для IPv6-адресов вне текущего диапазона глобальной одноадресной адресации 2000::/3, выделенного IANA, за исключением пространства link-local. Он также возвращает true, если ip находится в частном пространстве IPv4-адресов или пространстве уникальных локальных IPv6-адресов. Для нулевого Addr возвращается false.

См. RFC 1122, RFC 4291 и RFC 4632.

func (Addr) IsInterfaceLocalMulticast 1.18

func (ip Addr) IsInterfaceLocalMulticast() bool

IsInterfaceLocalMulticast сообщает, является ли ip IPv6-адресом многоадресной рассылки уровня интерфейса.

func (Addr) IsLinkLocalMulticast 1.18

func (ip Addr) IsLinkLocalMulticast() bool

IsLinkLocalMulticast сообщает, является ли ip адресом многоадресной рассылки link-local.

func (Addr) IsLinkLocalUnicast 1.18

func (ip Addr) IsLinkLocalUnicast() bool

IsLinkLocalUnicast сообщает, является ли ip одноадресным адресом link-local.

func (Addr) IsLoopback 1.18

func (ip Addr) IsLoopback() bool

IsLoopback сообщает, является ли ip адресом обратной петли.

func (Addr) IsMulticast 1.18

func (ip Addr) IsMulticast() bool

IsMulticast сообщает, является ли ip адресом многоадресной рассылки.

func (Addr) IsPrivate 1.18

func (ip Addr) IsPrivate() bool

IsPrivate сообщает, является ли ip частным адресом согласно RFC 1918 (IPv4-адреса) и RFC 4193 (IPv6-адреса). Иными словами, сообщает, входит ли ip в диапазон 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 или fc00::/7. Поведение совпадает с net.IP.IsPrivate.

IsPrivate не определяет свойство безопасности адресов и не должен использоваться для управления доступом.

func (Addr) IsUnspecified 1.18

func (ip Addr) IsUnspecified() bool

IsUnspecified сообщает, является ли ip неопределённым адресом: IPv4-адресом "0.0.0.0" или IPv6-адресом "::".

Обратите внимание, что нулевой Addr не является неопределённым адресом.

func (Addr) IsValid 1.18

func (ip Addr) IsValid() bool

IsValid сообщает, является ли Addr инициализированным адресом (не нулевым Addr).

Обратите внимание, что значения "0.0.0.0" и "::" являются допустимыми.

func (Addr) Less 1.18

func (ip Addr) Less(ip2 Addr) bool

Less сообщает, располагается ли ip перед ip2 при сортировке. Сначала IP-адреса сортируются по длине, затем по адресу. IPv6-адреса с зонами располагаются сразу после такого же адреса без зоны.

func (Addr) MarshalBinary 1.18

func (ip Addr) MarshalBinary() ([]byte, error)

MarshalBinary реализует интерфейс encoding.BinaryMarshaler. Для нулевого Addr метод возвращает срез нулевой длины, для IPv4-адреса — 4-байтовое представление, а для IPv6-адреса — 16-байтовое представление с добавленной зоной.

func (Addr) MarshalText 1.18

func (ip Addr) MarshalText() ([]byte, error)

MarshalText реализует интерфейс encoding.TextMarshaler. Кодирование совпадает с результатом Addr.String, за одним исключением: если ip — нулевой Addr, кодированное представление является пустой строкой.

func (Addr) Next 1.18

func (ip Addr) Next() Addr

Next возвращает адрес, следующий за ip. Если такого адреса нет, возвращается нулевой Addr.

func (Addr) Prefix 1.18

func (ip Addr) Prefix(b int) (Prefix, error)

Prefix оставляет только старшие b битов IP-адреса, создавая Prefix заданной длины. Если ip — нулевой Addr, Prefix всегда возвращает нулевой Prefix и nil в качестве ошибки. В противном случае, если bits меньше нуля или больше ip.BitLen(), Prefix возвращает ошибку.

func (Addr) Prev 1.18

func (ip Addr) Prev() Addr

Prev возвращает IP-адрес, предшествующий ip. Если такого адреса нет, возвращается нулевое значение IP.

func (Addr) String 1.18

func (ip Addr) String() string

String возвращает строковое представление IP-адреса ip в одном из 5 форматов:

  • "invalid IP" для нулевого Addr
  • IPv4 в десятичной точечной нотации ("192.0.2.1")
  • IPv6 ("2001:db8::1")
  • "::ffff:1.2.3.4" (если Addr.Is4In6)
  • IPv6 с зоной ("fe80:db8::1%eth0")

Обратите внимание: в отличие от метода IP.String пакета net, для IPv4-адресов, отображённых в IPv6, перед четырьмя десятичными октетами выводится префикс "::ffff:".

func (Addr) StringExpanded 1.18

func (ip Addr) StringExpanded() string

StringExpanded подобен Addr.String, но IPv6-адреса выводятся с ведущими нулями и без сжатия "::". Например, "2001:db8::1" преобразуется в "2001:0db8:0000:0000:0000:0000:0000:0001".

func (Addr) Unmap 1.18

func (ip Addr) Unmap() Addr

Unmap возвращает ip без префикса IPv4-адреса, отображённого в IPv6, если такой префикс есть.

То есть, если ip — IPv6-адрес, содержащий IPv4-адрес, метод возвращает вложенный IPv4-адрес. В противном случае ip возвращается без изменений.

func (*Addr) UnmarshalBinary 1.18

func (ip *Addr) UnmarshalBinary(b []byte) error

UnmarshalBinary реализует интерфейс encoding.BinaryUnmarshaler. Метод ожидает данные в формате, создаваемом методом Addr.MarshalBinary.

func (*Addr) UnmarshalText 1.18

func (ip *Addr) UnmarshalText(text []byte) error

UnmarshalText реализует интерфейс encoding.TextUnmarshaler. IP-адрес должен быть представлен в формате, принимаемом методом ParseAddr.

Если text пуст, UnmarshalText присваивает *ip нулевой Addr и возвращает отсутствие ошибки.

func (Addr) WithZone 1.18

func (ip Addr) WithZone(zone string) Addr

WithZone возвращает IP-адрес, совпадающий с ip, но с указанной зоной. Если zone пуста, зона удаляется. Если ip — IPv4-адрес, WithZone ничего не делает и возвращает ip без изменений.

func (Addr) Zone 1.18

func (ip Addr) Zone() string

Zone возвращает scoped-зону адресации IPv6 для ip, если она задана.

тип AddrPort 1.18

AddrPort представляет IP-адрес и номер порта.

type AddrPort struct {
    // contains filtered or unexported fields
}

func AddrPortFrom 1.18

func AddrPortFrom(ip Addr, port uint16) AddrPort

AddrPortFrom возвращает AddrPort с указанными IP-адресом и портом. Память не выделяется.

func MustParseAddrPort 1.18

func MustParseAddrPort(s string) AddrPort

MustParseAddrPort вызывает ParseAddrPort(s) и вызывает панику при ошибке. Предназначена для использования в тестах со строками, заданными непосредственно в коде.

func ParseAddrPort 1.18

func ParseAddrPort(s string) (AddrPort, error)

ParseAddrPort разбирает s как AddrPort.

Разрешение имён не выполняется: и адрес, и порт должны быть числовыми.

func (AddrPort) Addr 1.18

func (p AddrPort) Addr() Addr

Addr возвращает IP-адрес p.

func (AddrPort) AppendBinary 1.24

func (p AddrPort) AppendBinary(b []byte) ([]byte, error)

AppendBinary реализует интерфейс encoding.BinaryAppender. Метод возвращает результат Addr.AppendBinary с двумя дополнительными байтами в конце, содержащими порт в порядке байтов от младшего к старшему.

func (AddrPort) AppendText 1.24

func (p AddrPort) AppendText(b []byte) ([]byte, error)

AppendText реализует интерфейс encoding.TextAppender. Кодирование совпадает с результатом AddrPort.AppendTo.

func (AddrPort) AppendTo 1.18

func (p AddrPort) AppendTo(b []byte) []byte

AppendTo добавляет к b текстовое представление p, сформированное методом AddrPort.MarshalText, и возвращает расширенный буфер.

func (AddrPort) Compare 1.22

func (p AddrPort) Compare(p2 AddrPort) int

Compare возвращает целое число, сравнивающее два AddrPort. Результат равен 0, если p == p2, -1, если p < p2, и +1, если p > p2. Сначала AddrPort сортируются по IP-адресу, затем по порту.

func (AddrPort) IsValid 1.18

func (p AddrPort) IsValid() bool

IsValid сообщает, является ли p.Addr() допустимым. Все порты допустимы, включая нулевой.

func (AddrPort) MarshalBinary 1.18

func (p AddrPort) MarshalBinary() ([]byte, error)

MarshalBinary реализует интерфейс encoding.BinaryMarshaler. Метод возвращает результат Addr.MarshalBinary с двумя дополнительными байтами в конце, содержащими порт в порядке байтов от младшего к старшему.

func (AddrPort) MarshalText 1.18

func (p AddrPort) MarshalText() ([]byte, error)

MarshalText реализует интерфейс encoding.TextMarshaler. Кодирование совпадает с результатом AddrPort.String, за одним исключением: если p.Addr() — нулевой Addr, кодированное представление является пустой строкой.

func (AddrPort) Port 1.18

func (p AddrPort) Port() uint16

Port возвращает порт p.

func (AddrPort) String 1.18

func (p AddrPort) String() string

func (*AddrPort) UnmarshalBinary 1.18

func (p *AddrPort) UnmarshalBinary(b []byte) error

UnmarshalBinary реализует интерфейс encoding.BinaryUnmarshaler. Метод ожидает данные в формате, создаваемом методом AddrPort.MarshalBinary.

func (*AddrPort) UnmarshalText 1.18

func (p *AddrPort) UnmarshalText(text []byte) error

UnmarshalText реализует интерфейс encoding.TextUnmarshaler. AddrPort должен быть представлен в формате, создаваемом методом AddrPort.MarshalText или принимаемом методом ParseAddrPort.

тип Prefix 1.18

Prefix — это префикс IP-адреса (CIDR), представляющий IP-сеть.

Задаются первые Prefix.Bits() битов Addr(). Остальные биты соответствуют любому адресу. Диапазон значений Bits() составляет [0,32] для IPv4 или [0,128] для IPv6.

type Prefix struct {
    // contains filtered or unexported fields
}

func MustParsePrefix 1.18

func MustParsePrefix(s string) Prefix

MustParsePrefix вызывает ParsePrefix(s) и вызывает панику при ошибке. Предназначена для использования в тестах со строками, заданными непосредственно в коде.

func ParsePrefix 1.18

func ParsePrefix(s string) (Prefix, error)

ParsePrefix разбирает s как префикс IP-адреса. Строка может иметь вид "192.168.1.0/24" или "2001:db8::/32" — это нотация CIDR, определённая в RFC 4632 и RFC 4291. В префиксах IPv6 зоны не допускаются; при наличии зоны будет возвращена ошибка.

Обратите внимание, что биты маски адреса не обнуляются. Для этого используйте Masked.

func PrefixFrom 1.18

func PrefixFrom(ip Addr, bits int) Prefix

PrefixFrom возвращает Prefix с указанным IP-адресом и длиной префикса в битах.

Память не выделяется. В отличие от Addr.Prefix, PrefixFrom не маскирует биты узла в ip.

Если bits меньше нуля или больше ip.BitLen, Prefix.Bits вернёт недопустимое значение -1.

func (Prefix) Addr 1.18

func (p Prefix) Addr() Addr

Addr возвращает IP-адрес p.

func (Prefix) AppendBinary 1.24

func (p Prefix) AppendBinary(b []byte) ([]byte, error)

AppendBinary реализует интерфейс encoding.BinaryAppender. Метод возвращает результат Addr.AppendBinary с дополнительным байтом в конце, содержащим биты префикса.

func (Prefix) AppendText 1.24

func (p Prefix) AppendText(b []byte) ([]byte, error)

AppendText реализует интерфейс encoding.TextAppender. Результат совпадает с результатом Prefix.AppendTo.

func (Prefix) AppendTo 1.18

func (p Prefix) AppendTo(b []byte) []byte

AppendTo добавляет к b текстовое представление p, сформированное методом Prefix.MarshalText, и возвращает расширенный буфер.

func (Prefix) Bits 1.18

func (p Prefix) Bits() int

Bits возвращает длину префикса p.

Для недопустимого значения возвращается -1.

func (Prefix) Compare 1.26

func (p Prefix) Compare(p2 Prefix) int

Compare возвращает целое число, сравнивающее два префикса. Результат равен 0, если p == p2, -1, если p < p2, и +1, если p > p2. Сначала префиксы сортируются по допустимости (недопустимые перед допустимыми), затем по семейству адресов (IPv4 перед IPv6), затем по адресу префикса с маской, длине префикса и адресу без маски.

func (Prefix) Contains 1.18

func (p Prefix) Contains(ip Addr) bool

Contains сообщает, включает ли сеть p адрес ip.

IPv4-адрес не будет соответствовать префиксу IPv6. IPv4-адрес, отображённый в IPv6, не будет соответствовать префиксу IPv4. IP-адрес с нулевым значением не будет соответствовать ни одному префиксу. Если у ip есть зона IPv6, Contains возвращает false, поскольку зоны удаляются из префиксов.

func (Prefix) IsSingleIP 1.18

func (p Prefix) IsSingleIP() bool

IsSingleIP сообщает, содержит ли p ровно один IP-адрес.

func (Prefix) IsValid 1.18

func (p Prefix) IsValid() bool

IsValid сообщает, находится ли p.Bits() в допустимом диапазоне для p.Addr(). Если p.Addr() — нулевой Addr, IsValid возвращает false. Обратите внимание: если p — нулевой Prefix, то p.IsValid() == false.

func (Prefix) MarshalBinary 1.18

func (p Prefix) MarshalBinary() ([]byte, error)

MarshalBinary реализует интерфейс encoding.BinaryMarshaler. Метод возвращает результат Addr.MarshalBinary с дополнительным байтом в конце, содержащим биты префикса.

func (Prefix) MarshalText 1.18

func (p Prefix) MarshalText() ([]byte, error)

MarshalText реализует интерфейс encoding.TextMarshaler. Кодирование совпадает с результатом Prefix.String, за одним исключением: если p — нулевой Prefix, кодированное представление является пустой строкой.

func (Prefix) Masked 1.18

func (p Prefix) Masked() Prefix

Masked возвращает p в канонической форме, маскируя все биты p.Addr(), кроме старших p.Bits().

Если p равен нулю или недопустим по другой причине, Masked возвращает нулевой Prefix.

func (Prefix) Overlaps 1.18

func (p Prefix) Overlaps(o Prefix) bool

Overlaps сообщает, содержат ли p и o хотя бы один общий IP-адрес.

Если p и o относятся к разным семействам адресов или хотя бы один из них содержит нулевой IP-адрес, метод возвращает false. Как и в методе Contains, префикс с IPv4-адресом, отображённым в IPv6, рассматривается как маска IPv6.

func (Prefix) String 1.18

func (p Prefix) String() string

String возвращает p в нотации CIDR: "<ip>/<bits>".

func (*Prefix) UnmarshalBinary 1.18

func (p *Prefix) UnmarshalBinary(b []byte) error

UnmarshalBinary реализует интерфейс encoding.BinaryUnmarshaler. Метод ожидает данные в формате, создаваемом методом Prefix.MarshalBinary.

func (*Prefix) UnmarshalText 1.18

func (p *Prefix) UnmarshalText(text []byte) error

UnmarshalText реализует интерфейс encoding.TextUnmarshaler. Ожидается, что IP-адрес будет представлен в формате, принимаемом функцией ParsePrefix или создаваемом методом Prefix.MarshalText.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/net/netip/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API