NetAddress¶
Represents an IPv4 or IPv6 address. The family field indicates the address type. The addr field is either the IPv4 address or the IPv6 flow info. The addr1-4 fields are the IPv6 address, or invalid for an IPv4 address. The scope field is the IPv6 scope, or invalid for an IPv4 address.
This class is modelled after the C data structure for holding socket
addresses for both IPv4 and IPv6 sockaddr_storage
.
Use the name
method to obtain address/hostname and port/service as Strings.
Implements¶
- Equatable[NetAddress val] ref
Constructors¶
create¶
Returns¶
- NetAddress iso^
Public Functions¶
ip4¶
Returns true for an IPv4 address.
Returns¶
- Bool val
ip6¶
Returns true for an IPv6 address.
Returns¶
- Bool val
name¶
Returns the host and service name.
If reversedns
is DNSAuth
,
a DNS lookup will be executed and the hostname
for this address is returned as first element of the result tuple.
If no hostname could be found, an error is raised.
If reversedns
is None
the plain IP address is given
and no DNS lookup is executed.
If servicename
is false
the numeric port is returned
as second element of the result tuple.
If it is true
the port is translated into its
corresponding servicename (e.g. port 80 is returned as "http"
).
Internally this method uses the POSIX C function getnameinfo
.
fun box name(
reversedns: (DNSAuth val | None val) = reference,
servicename: Bool val = false)
: (String val , String val) ?
Parameters¶
Returns¶
eq¶
Parameters¶
- that: NetAddress box
Returns¶
- Bool val
host_eq¶
Parameters¶
- that: NetAddress box
Returns¶
- Bool val
length¶
For platforms (OSX/FreeBSD) with length
field as part of
its struct sockaddr
definition, returns the length
.
Else (Linux/Windows) returns the size of sockaddr_in
or sockaddr_in6
.
Returns¶
- U8 val
family¶
Returns the family
.
Returns¶
- U8 val
port¶
Returns port number in host byte order.
Returns¶
- U16 val
scope¶
Returns IPv6 scope identifier: Unicast, Anycast, Multicast and unassigned scopes.
Returns¶
- U32 val
ipv4_addr¶
Returns IPV4 address (_addr
field in the class) if ip4()
is True
.
If ip4()
is False
then the contents are invalid.
Returns¶
- U32 val
ipv6_addr¶
Returns IPV6 address as the 4-tuple (say a
).
a._1 = _addr1
// Bits 0-32 of the IPv6 address in host byte order.
a._2 = _addr2 // Bits 33-64 of the IPv6 address in host byte order.
a._3 = _addr3 // Bits 65-96 of the IPv6 address in host byte order.
`a._4 = _addr4 // Bits 97-128 of the IPv6 address in host byte order.
The contents of the 4-tuple returned are valid only if ip6()
is True
.
Returns¶
ne¶
Parameters¶
- that: NetAddress val
Returns¶
- Bool val