/iptools

A set of Elixir functions for validating and transforming IPv4 addresses

Primary LanguageElixirMIT LicenseMIT

Iptools

A set of functions for working with IPv4 addresses.

  • is_ipv4?(string) - checks if a string is an ipv4 address
  • is_rfc1918?(string) - checks if a string is an RFC1918 reserved address
  • is_reserved?(string) - checks if a string is any kind of reserved address. More complete than just RFC1918.
  • to_integer(string) - convert ip address string to integer.
  • is_between(string, string, string) - checks if the first ip address is between the next two addresses (inclusive)

There are also some functions for manipulating subnet masks

  • subnet_bit_string(string) - converts subnet mask to string of ones and zeros
  • subnet_bit_count(string) - converts subnet mask to integer count of bits.

Reserved IP addresses

You almost certainly want to use is_reserved? to find out if an ip address is "normal" or not. There are a lot of reserved addresses, such as the 0.0.0.0/8 network which are not RFC1918 addresses. So unless you're really checking for just RFC1918, use is_reserved?.

Running tests

I've got 100% test coverage for the first time in my whole life! Run mix test to see if they still pass.