2017-10-06 14:56:47 +13:00
|
|
|
defmodule IP do
|
|
|
|
@moduledoc """
|
2017-10-12 10:22:58 +13:00
|
|
|
`IP` provides representations for IP addresses and subnets for Elixir with a
|
|
|
|
bunch of helpful stuff tacked on the side.
|
|
|
|
|
|
|
|
Also provides a `__using__` macro so that `use IP` will result in
|
|
|
|
`import IP.Sigil`, which is just less typing, yo.
|
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
|
|
iex> ~i(192.0.2.1)
|
|
|
|
#IP.Address<192.0.2.1 DOCUMENTATION>
|
|
|
|
|
|
|
|
iex> ~i(2001:db8::)
|
|
|
|
#IP.Address<2001:db8:: DOCUMENTATION>
|
|
|
|
|
|
|
|
iex> outside = ~i(2001:db8::/64)
|
|
|
|
...> inside = IP.Prefix.eui_64!(outside, "60:f8:1d:ad:d8:90")
|
|
|
|
...> IP.Prefix.contains_address?(outside, inside)
|
|
|
|
true
|
2017-10-06 14:56:47 +13:00
|
|
|
"""
|
2017-10-12 10:22:58 +13:00
|
|
|
|
|
|
|
defmacro __using__(_opts) do
|
|
|
|
quote do
|
|
|
|
import IP.Sigil
|
|
|
|
end
|
|
|
|
end
|
2017-10-06 14:56:47 +13:00
|
|
|
end
|