-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Library to deal with IPv6 address text representations. -- -- Library to deal with IPv6 address text representations, canonization -- and manipulations. @package IPv6Addr @version 0.3 -- | Dealing with IPv6 address text representations, canonization and -- manipulations. -- --
-- ipv4AddrToIPv6AddrTokens (IPv4Addr "127.0.0.1") == [SixteenBits "7f0",Colon,SixteenBits "1"] --ipv4AddrToIPv6AddrTokens :: IPv6AddrToken -> [IPv6AddrToken] -- | Given an arbitrary list of IPv6AddrToken, returns the -- corresponding Text. ipv6TokensToText :: [IPv6AddrToken] -> Text ipv6TokensToIPv6Addr :: [IPv6AddrToken] -> Maybe IPv6Addr -- | Returns True if a list of IPv6AddrToken constitutes a -- valid IPv6 Address. isIPv6Addr :: [IPv6AddrToken] -> Bool -- | This is the main function which returns Just the list of a -- tokenized IPv6 address text representation validated against RFC 4291 -- and canonized in conformation with RFC 5952, or Nothing. maybeTokIPv6Addr :: Text -> Maybe [IPv6AddrToken] -- | Returns Just the list of tokenized pure IPv6 address, always -- rewriting an embedded IPv4 address if present. maybeTokPureIPv6Addr :: Text -> Maybe [IPv6AddrToken] fromDoubleColon :: [IPv6AddrToken] -> [IPv6AddrToken] toDoubleColon :: [IPv6AddrToken] -> [IPv6AddrToken] networkInterfacesIPv6AddrList :: IO [(String, IPv6)] -- | Dealing with IPv6 address text representations, canonization and -- manipulations. -- --
-- sixteenBitsArbToken "_f__" == Just (SixteenBits "bfd4") --sixteenBitsArbToken :: String -> IO (Maybe IPv6AddrToken) -- | Generates a partial IPv6Addr with n SixteenBits partialRandAddr :: Int -> IO [IPv6AddrToken] -- | Given a MAC address, returns the corresponding IPv6AddrToken -- list, or an empty list. -- --
-- macAddrToIPv6AddrTokens "fa:1d:58:cc:95:16" == [SixteenBits "fa1d",Colon,SixteenBits "58cc",Colon,SixteenBits "9516"] --macAddrToIPv6AddrTokens :: Text -> [IPv6AddrToken] -- | Given a valid name of a local network interface, returns Just -- the list of tokens of the interface's IPv6 address, or Nothing. getTokIPv6AddrOf :: String -> IO (Maybe [IPv6AddrToken]) -- | Given a valid name of a local network interface, returns Just -- the corresponding list of IPv6AddrToken of the interface's MAC -- Address, or Nothing. getTokMacAddrOf :: String -> IO (Maybe [IPv6AddrToken]) -- | Dealing with IPv6 address text representations, canonization and -- manipulations. -- --
-- maybeIPv6Addr "0:0::FFFF:192.0.2.128" == Just (IPv6Addr "::ffff:192.0.2.128") --maybeIPv6Addr :: Text -> Maybe IPv6Addr -- | Returns Just a pure IPv6Addr, or Nothing. -- --
-- maybePureIPv6Addr "::ffff:192.0.2.128" == Just (IPv6Addr "::ffff:c000:280") --maybePureIPv6Addr :: Text -> Maybe IPv6Addr -- | 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") --maybeFullIPv6Addr :: Text -> Maybe IPv6Addr -- | Returns Just the canonized IPv6Addr of the given network -- interface, or Nothing. -- --
-- getIPv6AddrOf "eth0" --getIPv6AddrOf :: String -> IO (Maybe IPv6Addr) -- | Returns Just the reverse lookup domain name corresponding of -- the given IPv6 address, as define in 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." --ip6arpa :: Text -> Maybe Text -- | Returns a random IPv6Addr randIPv6Addr :: IO IPv6Addr