c # проверить домен жив - PullRequest
       45

c # проверить домен жив

4 голосов
/ 04 ноября 2010

Я хочу знать, как я могу проверить, является ли домен активным в c #?

Я сделал это

IPAddress[] addresslist = Dns.GetHostAddresses("domain");

, он возвращает IP-адреса, что хорошо,но я хочу проверить, работает ли он (например, ping)?

Мне просто нужно знать, находится ли компьютер в той же сети, что и сервер, поэтому у меня есть функция для проверки, но функции основаны наприведенный выше код, и он возвращает IP-адреса, но я заметил, что он основан на кэшированном DNS!

Я хочу добавить еще одну функцию проверки, чтобы проверить, подключен ли сервер!

cheers

Ответы [ 3 ]

6 голосов
/ 16 ноября 2010

Свойство System.Net.NetworkInformation.OperationalStatus позволяет определить, подключен ли сетевой интерфейс (включен).

Метод NetworkInterface.GetIPProperties предоставит вам информацию об IP.

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

4 голосов
/ 04 ноября 2010

Вы можете использовать метод Ping.Send(IPAddress).

Редактировать: Или одна из перегрузок, которая принимает имя хоста напрямую.Ping.Send(string)

Пример из MSDN:

Ping pingSender = new Ping ();
PingReply reply = pingSender.Send ("www.contoso.com");
if (reply.Status == IPStatus.Success)
{
    Console.WriteLine ("Address: {0}", reply.Address.ToString ());
    Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
    Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
    Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
    Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
}
else
{
    Console.WriteLine (reply.Status);
}
0 голосов
/ 04 ноября 2010

Если вам необходимо выполнить какое-либо задание с удаленной системой, то никакие предварительные проверки не гарантируют, что вы сможете выполнить задачу - сети и хосты не являются на 100% надежными, и что was true во время ваших проверочных операций может больше не быть истинным при попытке выполнить текущую задачу или в течение всего периода выполнения задачи.

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

...