-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Library to deal with the IPv6 address's text representation. -- -- Library to deal with IPv6 addresse's text representation with -- validation against RFC 4291 and canonization in conformation with RFC -- 5952. @package IPv6Addr @version 0.1 -- | Dealing with IPv6 address's text representation. Main features are -- validation against RFC 4291 and canonization in conformation with RFC -- 5952. module Text.IPv6Addr type IPv6Addr = Text data IPv6AddrToken -- | A four hexadecimal digits group representing a 16-Bit chunk SixteenBits :: Text -> IPv6AddrToken -- | An all zeros 16-Bit chunk AllZeros :: IPv6AddrToken -- | A separator between 16-Bit chunks Colon :: IPv6AddrToken -- | A double-colon stands for a unique compression of many consecutive -- 16-Bit chunks DoubleColon :: IPv6AddrToken -- | An embedded IPv4 address as representation of the last 32-Bit IPv4Addr :: Text -> IPv6AddrToken -- | Returns True if a list of IPv6AddrToken constitutes a valid -- IPv6 Address. isIPv6Addr :: [IPv6AddrToken] -> Bool -- | Returns Just an IPv6Addr, or Nothing. -- --
-- maybeIPv6Addr "D045::00Da:0fA9:0:0:230.34.110.80" == Just "d045:0:da:fa9::e622:6e50" --maybeIPv6Addr :: Text -> Maybe IPv6Addr -- | This is the main function which returns Just the list of a tokenized -- IPv6 address's text representation validated against RFC 4291 and -- canonized (rewritten) in conformation with RFC 5952, or Nothing. maybeTokIPv6Addr :: Text -> Maybe [IPv6AddrToken] -- | Returns Just an expanded IPv6 address, or Nothing. maybeExpIPv6Addr :: Text -> Maybe IPv6Addr -- | Given a valid name of a local network interface, e.g. getIPv6AddrOf -- "eth0", return Just the interface's IPv6 address. getIPv6AddrOf :: String -> IO (Maybe IPv6Addr) -- | Returns Just a list of IPv6AddrToken, or Nothing. maybeIPv6AddrTokens :: Text -> Maybe [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. getTokIPv6AddrOf :: String -> IO (Maybe [IPv6AddrToken]) -- | Given the valid name of a local network interface, returns the -- corresponding list of IPv6AddrToken of the interface's MAC -- Address. getTokMacAddrOf :: String -> IO (Maybe [IPv6AddrToken]) -- | Returns a random SixteenBits token. E.g. sixteenBitsRand "d" -- may produce SixteenBits "d7b5". sixteenBitsRand :: String -> IO IPv6AddrToken -- | Rewrites Just an embedded IPv4Addr into the corresponding list -- of pure IPv6Addr tokens, or returns an empty list. -- --
-- 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 instance Eq IPv6AddrToken instance Show IPv6AddrToken instance Eq IPv4AddrToken instance Show IPv4AddrToken