Cidr
Classless Inter-Domain Routing address, which represents an IP address and its routing prefix.
- Value Params
- address
-
IP address for which this CIDR refers to
- prefixBits
-
number of leading 1s in the routing mask
- Companion
- object
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Value members
Methods
Returns the routing mask.
- Example
- {{{
scala> Cidr(ipv4"10.11.12.13", 8).mask
res0: Ipv4Address = 255.0.0.0
scala> Cidr(ipv6"2001:db8:abcd:12: :", 96).mask
res1: Ipv6Address = ffff:ffff: ffff:ffff: ffff:ffff: :
}}}
Returns the routing prefix.
Note: the routing prefix also serves as the first address in the range described by this CIDR.
- Example
- {{{
scala> Cidr(ipv4"10.11.12.13", 8).prefix
res0: Ipv4Address = 10.0.0.0
scala> Cidr(ipv6"2001:db8:abcd:12: :", 96).prefix
res1: Ipv6Address = 2001:db8:abcd:12: :
scala> Cidr(ipv6"2001:db8:abcd:12: :", 32).prefix
res2: Ipv6Address = 2001:db8::
}}}
Returns the last address in the range described by this CIDR.
- Example
- {{{
scala> Cidr(ipv4"10.11.12.13", 8).last
res0: Ipv4Address = 10.255.255.255
scala> Cidr(ipv6"2001:db8:abcd:12: :", 96).last
res1: Ipv6Address = 2001:db8:abcd:12: :ffff:ffff
scala> Cidr(ipv6"2001:db8:abcd:12: :", 32).last
res2: Ipv6Address = 2001:db8:ffff:ffff: ffff:ffff: ffff:ffff
}}}
Returns a predicate which tests if the supplied address is in the range described by this CIDR.
- Example
- {{{
scala> Cidr(ipv4"10.11.12.13", 8).contains(ipv4"10.100.100.100")
res0: Boolean = true
scala> Cidr(ipv4"10.11.12.13", 8).contains(ipv4"11.100.100.100")
res1: Boolean = false
scala> val x = Cidr(ipv6"2001:db8:abcd:12: :", 96).contains
scala> x(ipv6"2001:db8:abcd:12::5")
res2: Boolean = true
scala> x(ipv6"2001:db8::")
res3: Boolean = false
}}}