Возможно ли в С# предоставить адрес DNS-сервера для разрешения IP-адреса с DNS-сервера, отличного от параметров по умолчанию. Например: мой DNS: ns.isp.com Я хочу разрешить IP-адрес www.test.com, используя ns.other.com Спасибо
System.Net.Dns
не поддерживает эти запросы. Вы должны внедрить протокол DNS в свое приложение, и есть хороший пример в кодепроекте.
Если вы предпочитаете использовать библиотеку DNS, такую как
http://www.simpledns.com/dns-client-lib.aspx
Стоит отметить, что нет никаких гарантий того, сколько времени сервер DNS предпримет, чтобы ответить, если он вообще откликнется. У библиотеки есть тайм-аут, но она довольно длинная, 30 секунд, я считаю.
В результате DNS-запросы обычно должны быть записаны в асинхронном потоковом коде, поэтому поиск DNS не будет блокировать весь процесс.
Кроме того, вы обычно не хотите когда-либо выполнять поиск DNS в коде веб-сервера, потому что медленно реагирующий DNS-сервер может использовать все ресурсы вашего веб-сервера.
DNS-клиентская библиотека для.NET
http://www.simpledns.com/dns-client-lib.aspx
В верхней части списка функций говорится:
Особенности
AС# образец (с сайта):
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());
}