【问题标题】:c#: get CNAME & MX record from domain?c#:从域中获取 CNAME 和 MX 记录?
【发布时间】:2012-04-14 19:55:30
【问题描述】:

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

非常感谢

【问题讨论】:

    标签: c# dns cname


    【解决方案1】:

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

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

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

    1. 访问YQL Console
    2. 用以下内容填充 SQL 语句文本区域: select * from html where url="YOUR PARAMETRIC DNS URL" and xpath='XPATH 查询以访问结果 HTML 中的 NS 或 MX 记录'
    3. 在控制台中测试您的 YQL 语句
    4. 开发单个客户端应用程序,通过 HTTP 请求执行 YQL 语句。你可以从这个YQL JavaScript tutorial得到提示。

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

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

    【讨论】:

      【解决方案2】:

      .Net 框架不支持直接支持,但 Platform SDK 支持MSDN Entry for DnsQuery。您需要做的就是使用DllImport 导入它

      【讨论】:

        猜你喜欢
        • 2013-05-27
        • 1970-01-01
        • 2014-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多