使用不同(任意)DNS服务器的DNS解析

时间:2014-07-26 21:09:48

标签: c# dns

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

3 个答案:

答案 0 :(得分:5)

如果您选择使用DNS库,例如

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

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

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

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

答案 1 :(得分:1)

System.Net.Dns不支持这类查询。您应该在应用程序中实现DNS协议,并且代码项目上有good example

答案 2 :(得分:1)

.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());
}