diff options
author | Kazu Yamamoto <kazu@iij.ad.jp> | 2010-03-23 20:36:49 +0900 |
---|---|---|
committer | Kazu Yamamoto <kazu@iij.ad.jp> | 2010-03-23 20:36:49 +0900 |
commit | c2bd3b127be27a40cb279fb82d16cff147aaa10e (patch) | |
tree | e4c0bbbbaee8bf9b81066d52b0bf46156612de9f /Network | |
parent | 52a6eaad9c6d67874ecd7b6a7b3c8d2d4d213f1d (diff) |
add Lookup.
Diffstat (limited to 'Network')
-rw-r--r-- | Network/DNS/Lookup.hs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Network/DNS/Lookup.hs b/Network/DNS/Lookup.hs new file mode 100644 index 0000000..c458149 --- /dev/null +++ b/Network/DNS/Lookup.hs @@ -0,0 +1,33 @@ +module Network.DNS.Lookup where + +import Control.Applicative +import Data.IP +import Network.DNS.Types +import Network.DNS.Resolver as DNS + +lookupA :: Resolver -> Domain -> IO (Maybe [IPv4]) +lookupA rlv dom = toV4 <$> DNS.lookup rlv dom A + where + toV4 = maybe Nothing (Just . map unTag) + unTag (RD_A x) = x + unTag _ = error "lookupA" + +lookupAAAA :: Resolver -> Domain -> IO (Maybe [IPv6]) +lookupAAAA rlv dom = toV6 <$> DNS.lookup rlv dom AAAA + where + toV6 = maybe Nothing (Just . map unTag) + unTag (RD_AAAA x) = x + unTag _ = error "lookupAAAA" + +lookupAviaMX :: Resolver -> Domain -> IO (Maybe [IPv4]) +lookupAviaMX = undefined + +lookupAAAAviaMX :: Resolver -> Domain -> IO (Maybe [IPv6]) +lookupAAAAviaMX = undefined + +lookupTXT :: Resolver -> Domain -> IO (Maybe [String]) +lookupTXT rlv dom = toTXT <$> DNS.lookup rlv dom TXT + where + toTXT = maybe Nothing (Just . map unTag) + unTag (RD_TXT x) = x + unTag _ = error "lookupTXT" |