예제 #1
0
        /// <summary>
        /// Тест сети
        /// </summary>
        /// <param name="logs">Файл логов</param>
        /// <param name="ftpIP">адрес сервера</param>
        /// <returns></returns>
        public static bool NetworkTest(ControllerOfOutput logs, string ftpIP)
        {
            string[] str = new string[] { ftpIP };
            logs.WriteAverageMessage("Пингуем FTP...");
            if (Pinging(logs, str) == false)
            {
                logs.WriteCritMessage("FTP недоступен");
            }

            str = new string[] { "8.8.8.8.", "google.com", "yandex.ru", "facebook.com", "twitter.com" };
            logs.WriteAverageMessage("Пингуем глобальную сеть...");
            if (Pinging(logs, str) == false)
            {
                logs.WriteCritMessage("Ни один из адресов глобальной сети недоступен");
            }

            str = new string[] { "10.10.0.100", "10.10.0.150", "10.10.0.151", "10.10.0.125" };
            logs.WriteAverageMessage("Пингуем локальную сеть...");
            if (Pinging(logs, str) == false)
            {
                logs.WriteCritMessage("Ни один из адресов локальной сети недоступен");
            }

            return(true);
        }
예제 #2
0
        /// <summary>
        /// Выполняет команду ping
        /// </summary>
        /// <param name="logs">файл логов</param>
        /// <param name="str">адреса для пингования</param>
        /// <returns></returns>
        public static bool Pinging(ControllerOfOutput logs, string[] str)
        {
            System.Net.NetworkInformation.Ping      ping      = null;
            System.Net.NetworkInformation.PingReply pingReply = null;
            List <string> adresses = new List <string>(str);

            foreach (var item in adresses)
            {
                try
                {
                    ping      = new System.Net.NetworkInformation.Ping();
                    pingReply = ping.Send(item);
                    if (pingReply.Status == System.Net.NetworkInformation.IPStatus.Success)
                    {
                        logs.WriteAverageMessage(String.Format("Адрес {0} успешно пропингован! RoundtripTime: {1}. Status: {2}",
                                                               item, pingReply.RoundtripTime, pingReply.Status));
                    }
                    else
                    {
                        logs.WriteCritMessage(String.Format("Ответ от адреса {0} отличается от успешного! RoundtripTime: {1}. Status: {2}",
                                                            item, pingReply.RoundtripTime, pingReply.Status));
                        continue;
                    }
                    return(true);
                }
                catch (Exception ex)
                {
                    if (pingReply != null)
                    {
                        logs.WriteCritMessage(String.Format("Адрес {0} недоступен. RoundtripTime: {1}. Status: {2}. Error: {3}",
                                                            item, pingReply.RoundtripTime, pingReply.Status, ex.Message));
                    }
                    else
                    {
                        logs.WriteCritMessage(String.Format("Во время получения ответа от адреса {0} произошла ошибка {1}",
                                                            item, ex.Message));
                    }
                    continue;
                }
            }
            return(false);
        }