Haskell的DNS查询
问题描述:
我正在尝试做一个简单的查找,例如在“208.97.177.124”中转换“perdu.com”。我试着用Network.DNS.Lookup因为这是对谷歌的第一个结果,它工作正常:Haskell的DNS查询
rs <- makeResolvSeed defaultResolvConf
eIp <- withResolver rs $ \resolver -> lookupA resolver $ BS.pack "perdu.com"
的问题是,似乎忽略了/ etc/hosts文件。 Haskell正常解决域名问题的正确方法是“正常”,就像其他软件(如ping或任何浏览器)一样可以解决这个问题吗?我假设Network.DNS.Lookup实现了一个完整的递归解析器,而不仅仅是使用C函数?
答
这为我工作:
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
不需要做'名字 chi
谢谢!我更新了代码。 –
非常感谢,似乎是完美的工作! – Ulrar