【问题标题】:DNS resolution with different (arbitrary) DNS server使用不同(任意)DNS 服务器的 DNS 解析
【发布时间】:2014-07-26 21:09:48
【问题描述】:

是否可以在 c# 中提供 DNS 服务器地址以从非默认 DNS 服务器解析 IP。 示例:我的 DNS 是:ns.isp.com 我想使用 ns.other.com 解析 www.test.com 的 IP 谢谢

【问题讨论】:

    标签: c# dns


    【解决方案1】:

    如果您选择使用诸如

    之类的 DNS 库

    http://www.simpledns.com/dns-client-lib.aspx

    值得注意的是,如果 DNS 服务器响应成功,则无法保证它需要多少时间来响应。图书馆有一个超时,但它相当长,我相信 30 秒。

    因此,DNS 查找通常应该用异步的线程代码编写,因此 DNS 查找不会阻塞整个过程。

    此外,您通常不希望在 Web 服务器代码中进行 DNS 查找,因为响应缓慢的 DNS 服务器可能会占用您所有的 Web 服务器资源。

    【讨论】:

      【解决方案2】:

      System.Net.Dns 不支持此类查询。您应该在您的应用程序中实现 DNS 协议,并且在 codeproject 上有一个 good example

      【讨论】:

        【解决方案3】:

        .NET 的 DNS 客户端库

        http://www.simpledns.com/dns-client-lib.aspx

        在功能列表的顶部显示:

        特点

        • 查找任何 DNS 记录类型(A、AAAA、MX、SPF、SOA、SRV 等)。
        • (可选)指定要查询的 DNS 服务器(默认 = DNS 服务器 来自本地系统配置)。

        一个 C# 示例(来自网站):

        Lookup IPv4 addresses for www.simpledns.com using specific DNS servers: VB.NET  C#
        var Options = new JHSoftware.DnsClient.RequestOptions();
        Options.DnsServers = new System.Net.IPAddress[] { 
                   System.Net.IPAddress.Parse("1.1.1.1"), 
                   System.Net.IPAddress.Parse("2.2.2.2") };
        var IPs = JHSoftware.DnsClient.LookupHost("www.simpledns.com", 
                                                  JHSoftware.DnsClient.IPVersion.IPv4, 
                                                  Options);
        foreach(var IP in IPs)
        {
           Console.WriteLine(IP.ToString());
        }
        

        【讨论】:

          猜你喜欢
          • 2016-04-19
          • 1970-01-01
          • 2015-02-09
          • 1970-01-01
          • 2023-03-06
          • 2016-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多