Как я могу проверить свое соединение DNS? - PullRequest
1 голос
/ 26 декабря 2009

Простой вопрос. Как мне проверить, работает ли мой текущий DNS или нет? Будет ли это включать опрос? Боюсь, это потребует ресурсов, а также потребует выполнения в отдельном потоке

Ответы [ 4 ]

1 голос
/ 26 декабря 2009

Если вы пытаетесь сделать это в коде C #, проверьте

namespace System.Net

документация найдена здесь: http://msdn.microsoft.com/en-us/library/system.net.aspx

... который включает в себя класс ...

public static class Dns

документация найдена здесь: http://msdn.microsoft.com/en-us/library/system.net.dns.aspx

, который позволит вам написать код, такой как:

IPHostEntry hostInfo = Dns.GetHostByName("www.contoso.com");

В классе Dns есть дополнительные функции, которые могут быть вам полезны в зависимости от того, чего вы пытаетесь достичь.

Это не позволяет проверить, не работает ли ваш DNS-сервер напрямую, но можно предположить, что вы не можете разрешить работу сайта, который всегда должен быть активным (например, www.microsoft.com или www.google.com ) тогда ваш DNS не работает или вы потеряли подключение к Интернету. Если это не то, что вы ищете, пожалуйста, прокомментируйте немного подробнее, и мы посмотрим, сможем ли мы помочь.

1 голос
/ 26 декабря 2009

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

Функция Dns.GetHostByName выполняет поиск, но в нем не упоминается, будет ли использоваться локальный кэш. Вероятно, так оно и есть, поскольку, вероятно, использует функцию поиска ОС под капотом.

0 голосов
/ 26 декабря 2009

Несколько вещей:

Опрос 1:

Из-за возможности возврата обратно значений, вы, вероятно, захотите найти несуществующие случайные домены (возможно, guid.somedomainyoucontrol.com) и проверить, получите ли вы тайм-аут или ожидаемый результат NXDOMAIN.

Опрос 2:

Что касается вашего страха, что это может стоить больших ресурсов: вам действительно нужно объяснить, что вы хотите сделать здесь, чтобы получить реальный ответ, но: DNS - очень легкий протокол. Я не думаю, что это сильно ударит по вашему клиенту или серверу, в зависимости от интервала опроса. Черт, даже существуют туннели «TCP через DNS», которые действительно подчеркивают, что может сделать DNS, и они обычно не разрушают сеть для других или для DOS сервера. Вероятно, лучше всего было бы ограничиться тайм-аутом консервативного опроса и разрешить поддомен ниже некоторого домена, которым вы владеете, возможно, даже напрямую запрашивая сервер имен, которым вы управляете.

"Подключение":

DNS чаще всего использует UDP. Он может переключаться или использоваться через TCP, но это не «нормальное» использование. Так что термин «связь», вероятно, вводит в заблуждение. Вы можете просто проверить на любой момент времени, если можете разрешить хосты прямо сейчас .

0 голосов
/ 26 декабря 2009

попробуйте разрешить доменное имя с помощью DNS.

...