sealed abstract class IpAddress extends IpAddressPlatform with Host with Serializable

Immutable and safe representation of an IP address, either V4 or V6.

Construction

IpAddress instances are constructed in a few different ways: - via IpAddress("127.0.0.1"), which parses a string representation of the IP and returns an Option[IpAddress] - via IpAddress.fromBytes(arr), which returns an IP address if the supplied array is either exactly 4 bytes or exactly 16 bytes - via literal syntax like ip"127.0.0.1", which returns an IpAddress and fails to *compile* if the IP is invalid.

Type Hierarchy

There are two subtypes of IpAddress -- Ipv4Address and Ipv6Address. Each of these subtypes have a richer API than IpAddress and it is often useful to use those types directly, for example if your use case requires a V6 address. It is safe to pattern match on IpAddress to access Ipv4Address or Ipv6Address directly, or alternatively, you can use fold.

JVM Specific API

If using IpAddress on the JVM, you can call toInetAddress to convert the address to a java.net.InetAddress, for use with networking libraries. This method does not exist on the Scala.js version.

Source
Host.scala
Linear Supertypes
Serializable, Host, Ordered[Host], Comparable[Host], HostPlatform, IpAddressPlatform, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IpAddress
  2. Serializable
  3. Host
  4. Ordered
  5. Comparable
  6. HostPlatform
  7. IpAddressPlatform
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract val bytes: Array[Byte]
    Attributes
    protected
  2. abstract def fold[A](v4: (Ipv4Address) => A, v6: (Ipv6Address) => A): A

    Converts this address to a value of type A using the supplied functions.

  3. abstract def isMulticast: Boolean

    Returns true if this address is in the multicast range.

  4. abstract def isSourceSpecificMulticast: Boolean

    Returns true if this address is in the source specific multicast range.

  5. abstract def next: IpAddress

    Gets the IP address after this address, with overflow from the maximum value to the minimum value.

  6. abstract def previous: IpAddress

    Gets the IP address before this address, with underflow from minimum value to the maximum value.

  7. abstract def toUriString: String

    Converts this address to a string form that is compatible for use in a URI per RFC3986 (namely, IPv6 addresses are rendered in condensed form and surrounded by brackets).

  8. abstract def transform(v4: (Ipv4Address) => Ipv4Address, v6: (Ipv6Address) => Ipv6Address): IpAddress.this.type

    Maps a type-preserving function across this IP address.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def /(prefixBits: Int): Cidr[IpAddress.this.type]

    Constructs a Cidr address from this address.

  4. def <(that: Host): Boolean
    Definition Classes
    Ordered
  5. def <=(that: Host): Boolean
    Definition Classes
    Ordered
  6. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  7. def >(that: Host): Boolean
    Definition Classes
    Ordered
  8. def >=(that: Host): Boolean
    Definition Classes
    Ordered
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def asIpv4: Option[Ipv4Address]

    Narrows this address to an Ipv4Address if that is the underlying type.

  11. def asIpv6: Option[Ipv6Address]

    Narrows this address to an Ipv6Address if that is the underlying type.

  12. def asMulticast: Option[Multicast[IpAddress.this.type]]

    Converts this address to a multicast address, as long as it is in the multicast address range.

  13. def asSourceSpecificMulticast: Option[SourceSpecificMulticast[IpAddress.this.type]]

    Converts this address to a source specific multicast address, as long as it is in the source specific multicast address range.

  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  15. def compare(that: Host): Int
    Definition Classes
    Host → Ordered
  16. def compareTo(that: Host): Int
    Definition Classes
    Ordered → Comparable
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(other: Any): Boolean
    Definition Classes
    IpAddress → AnyRef → Any
  19. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  20. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  21. def hashCode(): Int
    Definition Classes
    IpAddress → AnyRef → Any
  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  26. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  27. def toBytes: Array[Byte]

    Converts this address to a network order byte array of either 4 or 16 bytes.

  28. def toString(): String
    Definition Classes
    AnyRef → Any
  29. def version: IpVersion

    Returns the version of this address.

  30. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from Host

Inherited from Ordered[Host]

Inherited from Comparable[Host]

Inherited from HostPlatform

Inherited from IpAddressPlatform

Inherited from AnyRef

Inherited from Any

Ungrouped