Search results

There are no results.

std.net.ip.IpAddress

class pub enum IpAddress

An IPv4 or IPv6 address.

Constructors

V4

V4(Ipv4Address)

An IPv4 address.

V6

V6(Ipv6Address)

An IPv6 address.

Static methods

parse

Show source code
Hide source code
fn pub static parse(address: String) -> Option[IpAddress] {
  if address.contains?(':') {
    Ipv6Address.parse(address).map(fn (v) { V6(v) })
  } else {
    Ipv4Address.parse(address).map(fn (v) { V4(v) })
  }
}
fn pub static parse(address: String) -> Option[IpAddress]

Parses an IPv4 or IPv6 address.

This method only supports IPv4 or IPv6 addresses. Port numbers, IPv6 zones, and CIDR masks are not supported.

Examples

Parsing an IPv4 address:

import std.net.ip (IpAddress)

IpAddress.parse('1.2.3.4') # => Option.Some(IpAddress.V4(Ipv4Address.new(1, 2, 3, 4)))

Parsing an IPv6 address:

import std.net.ip (IpAddress)

IpAddress.parse('::1') # => Option.Some(IpAddress.V6(Ipv6Address.new(0, 0, 0, 0, 0, 0, 0, 1)))

v4

Show source code
Hide source code
fn pub static v4(a: Int, b: Int, c: Int, d: Int) -> IpAddress {
  V4(Ipv4Address.new(a, b, c, d))
}
fn pub static v4(a: Int, b: Int, c: Int, d: Int) -> IpAddress

Returns a new IPv4 address.

This is a shortcut for IpAddress.V4(Ipv4Address.new(...)).

Examples

import std.net.ip (IpAddress)

IpAdress.v4(127, 0, 0, 1)

v6

Show source code
Hide source code
fn pub static v6(
  a: Int,
  b: Int,
  c: Int,
  d: Int,
  e: Int,
  f: Int,
  g: Int,
  h: Int,
) -> IpAddress {
  V6(Ipv6Address.new(a, b, c, d, e, f, g, h))
}
fn pub static v6(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int, g: Int, h: Int) -> IpAddress

Returns a new IPv6 address.

This is a shortcut for IpAddress.V6(Ipv6Address.new(...)).

Examples

import std.net.ip (IpAddress)

IpAdress.v6(0, 0, 0, 0, 0, 0, 0, 1)

Instance methods

!=

Show source code
Hide source code
fn pub !=(other: T) -> Bool {
  (self == other).false?
}
fn pub !=(other: T) -> Bool

Returns true if self and the given object are not equal to each other.

==

Show source code
Hide source code
fn pub ==(other: ref IpAddress) -> Bool {
  match self {
    case V4(a) -> {
      match other {
        case V4(b) -> a == b
        case _ -> false
      }
    }
    case V6(a) -> {
      match other {
        case V6(b) -> a == b
        case _ -> false
      }
    }
  }
}
fn pub ==(other: ref IpAddress) -> Bool

Returns true if self and the given object are equal to each other.

This operator is used to perform structural equality. This means two objects residing in different memory locations may be considered equal, provided their structure is equal. For example, two different arrays may be considered to have structural equality if they contain the exact same values.

clone

Show source code
Hide source code
fn pub clone -> IpAddress {
  match self {
    case V4(ip) -> IpAddress.V4(ip.clone)
    case V6(ip) -> IpAddress.V6(ip.clone)
  }
}
fn pub clone -> IpAddress

Creates a clone of self.

documentation?

Show source code
Hide source code
fn pub documentation? -> Bool {
  match self {
    case V4(ip) -> ip.documentation?
    case V6(ip) -> ip.documentation?
  }
}
fn pub documentation? -> Bool

Returns true if self is in the range designated for documentation.

fmt

Show source code
Hide source code
fn pub fmt(formatter: mut Formatter) {
  formatter.write(to_string)
}
fn pub fmt(formatter: mut Formatter)

Formats self in a human-readable format for debugging purposes.

into_string

Show source code
Hide source code
fn pub move into_string -> String {
  match self {
    case V4(ip) -> ip.into_string
    case V6(ip) -> ip.into_string
  }
}
fn pub move into_string -> String

Moves self into a String.

loopback?

Show source code
Hide source code
fn pub loopback? -> Bool {
  match self {
    case V4(ip) -> ip.loopback?
    case V6(ip) -> ip.loopback?
  }
}
fn pub loopback? -> Bool

Returns true if self is a loopback address.

multicast?

Show source code
Hide source code
fn pub multicast? -> Bool {
  match self {
    case V4(ip) -> ip.multicast?
    case V6(ip) -> ip.multicast?
  }
}
fn pub multicast? -> Bool

Returns true if self is a multicast address.

to_string

Show source code
Hide source code
fn pub to_string -> String {
  match self {
    case V4(ip) -> ip.to_string
    case V6(ip) -> ip.to_string
  }
}
fn pub to_string -> String

Converts self to a String.

unspecified?

Show source code
Hide source code
fn pub unspecified? -> Bool {
  match self {
    case V4(ip) -> ip.unspecified?
    case V6(ip) -> ip.unspecified?
  }
}
fn pub unspecified? -> Bool

Returns true if self is the special "unspecified" address.

v4?

Show source code
Hide source code
fn pub v4? -> Bool {
  match self {
    case V4(_) -> true
    case _ -> false
  }
}
fn pub v4? -> Bool

Returns true if self is an IPv4 address.

v6?

Show source code
Hide source code
fn pub v6? -> Bool {
  match self {
    case V6(_) -> true
    case _ -> false
  }
}
fn pub v6? -> Bool

Returns true if self is an IPv6 address.

Implemented traits

std.clone.

Clone

impl Clone[IpAddress] for IpAddress
std.cmp.

Equal

impl Equal[ref IpAddress] for IpAddress
std.fmt.

Format

impl Format for IpAddress
std.string.

IntoString

impl IntoString for IpAddress
std.string.

ToString

impl ToString for IpAddress