3

谁能告诉我如何使用 c# 以编程方式从 Internet 域(www.example.com)检索 cname 和 mx 记录?根据我的简短研究,我知道可以通过对 DNS 服务器使用 UDP 套接字探测来实现,但是,是否可以在不知道 DNS 服务器地址的情况下实现这一点,只知道“www.example.com”这样的域名?我认为这是可能的,因为我一直在使用一些 3rd-party 免费工具包来成功获取 MX 记录,而不知道 DNS 服务器地址。

多谢

4

2 回答 2

1

我没有尝试过上面提到的库,但我会考虑使用服务而不是库。我不知道所需的用例是什么,但您甚至可以在 asp.net Web 应用程序、跨平台移动应用程序或移动网站上提供此功能。

  1. 寻找在线 DNS 工具(例如 DNSWatch),它通过 URL 参数返回必要的域信息。
  2. 检查结果页面的 HTML 结构

您可以处理此 HTML,但 Yahoo 可以为您使用 YQL html 处理器并以 XML 或 JSON 格式返回相关部分。

  1. 访问YQL 控制台
  2. 使用以下内容填充 SQL 语句文本区域:select * from html where url="YOUR PARAMETRIC DNS URL" and xpath='XPATH QUERY TO ACCESS NS OR MX RECORD IN THE RESULT HTML'
  3. 在控制台中测试您的 YQL 语句
  4. 开发单个客户端应用程序,通过 HTTP 请求执行 YQL 语句。您可以从这个YQL JavaScript 教程中获得提示。

优点:-您的应用程序可以非常轻量级缺点:-结果页面的 HTML 结构可以更改,或者 DNSWatch 可以在过度使用资源后拒绝您的请求。

不过,您可以在 1 小时内实现工作原型。

于 2012-04-14T20:51:33.837 回答
0

.Net 框架不直接支持,但 Platform SDK为 DnsQuery 做了 MSDN Entry。您需要做的就是将其导入DllImport

于 2012-04-14T20:07:40.520 回答