我在哪里可以找到一个c++ DNS库
Where can I find a C++ DNS Library?
我知道DNS通常由操作系统处理,但我假设DNS在目标系统上已被破坏(这是诊断DNS配置错误的工具)。因此,我需要自己实现DNS,以便根据已知的良好DNS服务器检查从系统返回的结果。
你可以用NSLookup或Dig工具手动指定DNS服务器地址,但似乎Windows API调用(例如GetAddressByName)不允许我指定要查询的服务器,而是使用系统配置的目标。
我试图查找DNS的rfc,但不幸的是,它们对我来说非常清晰——它们使HTTP规范看起来像有史以来最清晰、写得最好的规范。
我也不想重新发明别人已经做过好几次的东西。
您可以尝试:http://25thandclement.com/~william/projects/dns.c.html。另外,请参见需要在C
中构建简单的DNS解析器实际上,在谷歌上搜索"DNS解析器C"就会发现几种可能性。
尝试c-ares库,据我所知它确实实现了自己的DNS堆栈。我在linux上成功地使用过它,他们说它支持Windows,尽管我自己还没有尝试过。它不是c++,只是普通的C,但你可以很容易地为它编写一个c++包装器。
它的异步性获得了额外的好处,并提供了可以将其与现有事件循环集成的钩子。
我知道这个问题很老了,但是我还没有找到适合我的答案。我发现poslib是最好的dns库,具有非常简单的接口。
http://www.vantage-points.org/libvdns.html
http://directory.fsf.org/project/FireDNS/我从来没用过这个,但也许这对你有帮助?
我建议libunbound
(与ldns
一起)是一个独立的库,包含在Unbound递归解析器中。
它还支持DNSSEC验证,随着DNSSEC的继续部署,这将变得很有用。
见http://unbound.net/
djbdns包含一个DNS客户端库,您可以使用:
http://cr.yp.to/djbdns/dns.html这独立于系统DNS解析器库,并将生成正确的UDP数据包。如果您真的想聪明一点,可以将它与dnscache结合使用,或者使用dnstrace实用程序从根服务器解析名称,看看到底发生了什么。
当然,你需要让它在Windows上工作。应该不难。
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 从链接列表c++中删除一个项目
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '