Fan

 

final class

inet::IpAddress

sys::Obj
  inet::IpAddress

IpAddress models both IPv4 and IPv6 numeric addresses as well as provide DNS hostname resolution.

Slots

bytesSource

native Buf bytes()

Get the raw bytes of this address as a Buf of 4 or 16 bytes for IPv4 or IPv6 respectively. The buf position is zero.

equalsSource

override native Bool equals(Obj? obj)

Overrides sys::Obj.equals

Equality is based on equivalent address bytes.

hashSource

override native Int hash()

Overrides sys::Obj.hash

Hash code is based the address bytes.

hostnameSource

native Str hostname()

Return the hostname of this address. If a hostname was specified in make, then that string is used. Otherwise this method will perform a reverse DNS lookup potentially blocking the calling thread. If the address cannot be mapped to a hostname, then return the address in its numeric format.

isIPv4Source

native Bool isIPv4()

Is this a 32 bit (four byte) IP version 4 address.

isIPv6Source

native Bool isIPv6()

Is this a 128 bit (sixteen byte) IP version 6 address.

localSource

static native IpAddress local()

Return the IpAddress for the local machine.

makeSource

static native IpAddress make(Str s)

Parse an IP address formated as an IPv4 numeric address, IPv6 numeric address, or a DNS hostname. If a hostname if provided, then it is resolved to an IP address potentially blocking the calling thread. If the address is invalid or a hostname cannot be resolved then UnknownHostErr is thrown.

Examples:

IpAddress("169.200.3.103")
IpAddress("1080:0:0:0:8:800:200C:417A")
IpAddress("1080::8:800:200C:417A")
IpAddress("::ffff:129.144.52.38")
IpAddress("somehost")
IpAddress("www.acme.com")
makeAllSource

static native IpAddress[] makeAll(Str s)

Resolve a hostname to all of its configured IP addresses. If a numeric IPv4 or IPv6 address is specified then a list of one IpAddress is returned. If a hostname if provided, then it is resolved to all its configured IP addresses potentially blocking the calling thread. If the address is invalid or a hostname cannot be resolved then UnknownHostErr is thrown.

makeBytesSource

static native IpAddress makeBytes(Buf bytes)

Make an IpAddress for the specified raw bytes. The size of the byte buffer must be 4 for IPv4 or 16 for IPv6, otherwise ArgErr is thrown. The bytes must be a memory backed buffer.

numericSource

native Str numeric()

Get this address as a Str in its numeric notation. For IPv4 this is four decimal digits separated by dots. For IPv6 this is eight hexadecimal digits separated by colons.

toStrSource

override native Str toStr()

Overrides sys::Obj.toStr

Return the exact string passed to the constructor.