Разрешение DNS с другим (произвольным) DNS-сервером

1

Возможно ли в С# предоставить адрес DNS-сервера для разрешения IP-адреса с DNS-сервера, отличного от параметров по умолчанию. Например: мой DNS: ns.isp.com Я хочу разрешить IP-адрес www.test.com, используя ns.other.com Спасибо

Теги:
dns

3 ответа

1
Лучший ответ

System.Net.Dns не поддерживает эти запросы. Вы должны внедрить протокол DNS в свое приложение, и есть хороший пример в кодепроекте.

5

Если вы предпочитаете использовать библиотеку DNS, такую как

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

Стоит отметить, что нет никаких гарантий того, сколько времени сервер DNS предпримет, чтобы ответить, если он вообще откликнется. У библиотеки есть тайм-аут, но она довольно длинная, 30 секунд, я считаю.

В результате DNS-запросы обычно должны быть записаны в асинхронном потоковом коде, поэтому поиск DNS не будет блокировать весь процесс.

Кроме того, вы обычно не хотите когда-либо выполнять поиск DNS в коде веб-сервера, потому что медленно реагирующий DNS-сервер может использовать все ресурсы вашего веб-сервера.

1

DNS-клиентская библиотека для.NET

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

В верхней части списка функций говорится:

Особенности

  • Поиск любого типа записи DNS (A, AAAA, MX, SPF, SOA, SRV и т.д.).
  • Дополнительно укажите, какие DNS-серверы запрашивают (по умолчанию = DNS-серверы из локальной системной конфигурации).

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню