NetAddress
Представляет IPv4 или IPv6 адрес. Поле family указывает тип адреса. Поле addr — это либо IPv4 адрес, либо IPv6 информация о потоке. Поля addr1-4 — это IPv6 адрес, или недействительные значения для IPv4 адреса. Поле scope — это IPv6 область действия, или недействительное значение для IPv4 адреса.
Этот класс смоделирован по C структуре данных для хранения адресов сокетов как для IPv4, так и для IPv6 sockaddr_storage.
Используйте метод name для получения адреса/имени хоста и порта/службы в виде строк.
class val NetAddress is Equatable[NetAddress val] ref
Реализует
- Equatable[NetAddress val] ref
Конструкторы
create
new iso create() : NetAddress iso^
Возвращает
- NetAddress iso^
Публичные функции
ip4
Возвращает true для IPv4 адреса.
fun box ip4() : Bool val
Возвращает
- Bool val
ip6
Возвращает true для IPv6 адреса.
fun box ip6() : Bool val
Возвращает
- Bool val
name
Возвращает имя хоста и службы.
Если reversedns является экземпляром DNSLookupAuth, будет выполнено разрешение DNS, и имя хоста для этого адреса будет возвращено как первый элемент кортежа результата. Если имя хоста не найдено, генерируется ошибка. Если reversedns равно None, будет возвращен прямой IP-адрес, и разрешение DNS не выполняется.
Если servicename равно false, числовой порт возвращается как второй элемент кортежа результата. Если это true, порт преобразуется в соответствующее имя службы (например, порт 80 возвращается как "http").
Внутренне этот метод использует функцию POSIX C getnameinfo.
fun box name(
reversedns: (AmbientAuth val | NetAuth val | DNSAuth val |
None val) = reference,
servicename: Bool val = false)
: (String val , String val) ?
Параметры
- reversedns: (AmbientAuth val | NetAuth val | DNSAuth val | None val) = ссылка
- servicename: Bool val = false
Возвращает
eq
fun box eq( that: NetAddress box) : Bool val
Параметры
- that: NetAddress box
Возвращает
- Bool val
host_eq
fun box host_eq( that: NetAddress box) : Bool val
Параметры
- that: NetAddress box
Возвращает
- Bool val
length
Для платформ (OSX/FreeBSD) с length полем в определении struct sockaddr, возвращает length. В противном случае (Linux/Windows) возвращает размер sockaddr_in или sockaddr_in6.
fun box length() : U8 val
Возвращает
- U8 val
family
Возвращает family.
fun box family() : U8 val
Возвращает
- U8 val
port
Возвращает номер порта в порядке байтов хоста.
fun box port() : U16 val
Возвращает
- U16 val
scope
Возвращает идентификатор IPv6 области: одноадресные, многоадресные и без назначенной области.
fun box scope() : U32 val
Возвращает
- U32 val
ipv4_addr
Возвращает IPV4 адрес (_addr поле в классе), если ip4() равно True. Если ip4() равно False, то содержимое недействительно.
fun box ipv4_addr() : U32 val
Возвращает
- U32 val
ipv6_addr
Возвращает IPV6 адрес как 4-кортеж (например, a). a._1 = _addr1 // Биты 0-32 IPv6 адреса в порядке байтов хоста. a._2 = _addr2 // Bits 33-64 of the IPv6 address in host byte order.a._3 = _addr3 // Биты 65-96 IPv6 адреса в порядке байтов хоста. `a._4 = _addr4 // Биты 97-128 IPv6 адреса в порядке байтов хоста.
Содержимое возвращаемого 4-кортежа является валидным только если ip6() равно True.
fun box ipv6_addr()
: (U32 val , U32 val , U32 val ,
U32 val)
Возвращает
ne
fun box ne( that: NetAddress val) : Bool val
Параметры
- that: NetAddress val
Возвращает
- Bool val
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/net-NetAddress