【发布时间】:2011-07-19 22:46:20
【问题描述】:
我知道 DNS 通常由操作系统处理,但我假设目标系统上的 DNS 已损坏(这是诊断 DNS 配置错误的工具)。因此,我需要自己实现 DNS,以对照已知良好的 DNS 服务器检查从系统返回的结果。
您可以使用 NSLookup 或 Dig 工具执行此操作,手动指定 DNS 服务器地址,但执行此操作的 Windows API 调用(例如GetAddressByName)似乎不允许我指定要查询的服务器,并且改用系统配置的目标。
我试图寻找关于 DNS 的 RFC,但不幸的是,它们对我来说一清二楚——它们使 HTTP 规范看起来像是有史以来最清晰、编写得最好的规范。
我也不想重新发明别人已经做过几次的事情。
【问题讨论】:
-
我不明白这个问题。 DNS 可能配置错误,但这不是需要替代 API 的理由。
gethostbyname()和朋友还是会告诉你配置中的是什么。 -
@EJP:呃,不,gethostbyname 只进行查找。如果配置错误,它只会失败。没有编程方式告诉函数使用所需的特定 DNS 服务器。 (不更改 DNS 的全局设置,但我不会更改全局状态来解决本地问题)