【发布时间】:2014-07-26 21:09:48
【问题描述】:
是否可以在 c# 中提供 DNS 服务器地址以从非默认 DNS 服务器解析 IP。 示例:我的 DNS 是:ns.isp.com 我想使用 ns.other.com 解析 www.test.com 的 IP 谢谢
【问题讨论】:
是否可以在 c# 中提供 DNS 服务器地址以从非默认 DNS 服务器解析 IP。 示例:我的 DNS 是:ns.isp.com 我想使用 ns.other.com 解析 www.test.com 的 IP 谢谢
【问题讨论】:
如果您选择使用诸如
之类的 DNS 库http://www.simpledns.com/dns-client-lib.aspx
值得注意的是,如果 DNS 服务器响应成功,则无法保证它需要多少时间来响应。图书馆有一个超时,但它相当长,我相信 30 秒。
因此,DNS 查找通常应该用异步的线程代码编写,因此 DNS 查找不会阻塞整个过程。
此外,您通常不希望在 Web 服务器代码中进行 DNS 查找,因为响应缓慢的 DNS 服务器可能会占用您所有的 Web 服务器资源。
【讨论】:
System.Net.Dns 不支持此类查询。您应该在您的应用程序中实现 DNS 协议,并且在 codeproject 上有一个 good example。
【讨论】:
.NET 的 DNS 客户端库
http://www.simpledns.com/dns-client-lib.aspx
在功能列表的顶部显示:
特点
一个 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());
}
【讨论】: