IPv6Addr-0.3.0.1: Library to deal with IPv6 address text representations.

Stabilityprovisional
Maintainermichel.boucey@gmail.com
Safe HaskellNone

Text.IPv6Addr

Description

Dealing with IPv6 address text representations, canonization and manipulations.

Synopsis

Documentation

maybeIPv6Addr :: Text -> Maybe IPv6AddrSource

Returns Just the text representation of a canonized IPv6Addr in conformation with RFC 5952, or Nothing.

 maybeIPv6Addr "0:0::FFFF:192.0.2.128" == Just (IPv6Addr "::ffff:192.0.2.128")

maybePureIPv6Addr :: Text -> Maybe IPv6AddrSource

Returns Just a pure IPv6Addr, or Nothing.

 maybePureIPv6Addr "::ffff:192.0.2.128" == Just (IPv6Addr "::ffff:c000:280")

maybeFullIPv6Addr :: Text -> Maybe IPv6AddrSource

Returns Just a pure and expanded IPv6Addr, or Nothing.

 maybeFullIPv6Addr "::ffff:192.0.2.128" == Just (IPv6Addr "0000:0000:0000:0000:0000:ffff:c000:0280")

getIPv6AddrOf :: String -> IO (Maybe IPv6Addr)Source

Returns Just the canonized IPv6Addr of the given network interface, or Nothing.

 getIPv6AddrOf "eth0"

ip6arpa :: Text -> Maybe TextSource

Returns Just the reverse lookup domain name corresponding of the given IPv6 address (RFC 3596 Section 2.5), or Nothing.

 ip6arpa "4321:0:1:2:3:4:567:89ab" == Just "b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.ip6.arpa."