C#: 如何从域名获取CNAME和MX记录?

3
有人能告诉我如何使用C#编程从互联网域名(www.example.com)中程序化地检索cname和mx记录吗? 根据我的短期研究,我了解到可以通过使用UDP套接字探测DNS服务器来实现,但是,是否可能在不知道DNS服务器地址的情况下仅通过域名如“www.example.com”来实现呢? 我认为这是可能的,因为我一直在使用一些第三方免费工具包成功获取MX记录,而不知道DNS服务器地址。 非常感谢。
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小时内实现工作原型。

0

.Net框架不直接支持它,但平台SDK支持 DnsQuery的MSDN条目。你所需要做的就是使用DllImport导入它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接