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

本文关键字:DNS 服务器 解析 任意 不同 | 更新日期: 2023-09-27 18:15:15

是否有可能在c#中提供DNS服务器地址来从非默认DNS服务器解析IP ?例如:我的DNS为:ns.isp.com我想用ns.other.com解析www.test.com的IP由于

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

如果您选择使用DNS库,如

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

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

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

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

System.Net.Dns不支持这类查询。您应该在应用程序中实现DNS协议,codeproject中有一个很好的例子。

.NET的DNS客户端库

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

在功能列表的顶部写着:

特性
  • 查找任何DNS记录类型(A, AAAA, MX, SPF, SOA, SRV等)。
  • 可选地指定要查询的DNS服务器(default = 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());
}