Haskell中的DNS查找

时间:2016-08-23 09:28:49

标签: haskell

我正在尝试进行简单的查找,例如在“208.97.177.124”中转换“perdu.com”。我尝试使用Network.DNS.Lookup,因为这是谷歌的第一个结果,它运行正常:

rs <- makeResolvSeed defaultResolvConf
eIp <- withResolver rs $ \resolver -> lookupA resolver $ BS.pack "perdu.com"

问题是似乎忽略了/ etc / hosts文件。在Haskell中“正常”解析域的正确方法是什么,就像ping或任何浏览器之类的其他软件一样?我假设Network.DNS.Lookup实现了一个完整的递归解析器,而不仅仅是使用C函数?

1 个答案:

答案 0 :(得分:4)

这对我有用:

import Network.BSD (getHostByName, hostAddress)
import Network.Socket (inet_ntoa)
import System.Environment (getArgs)

resolve address = do
  ent <- getHostByName address
  inet_ntoa (hostAddress ent)

main = resolve "perdu.com" >>= putStrLn
相关问题