Опросить несколько сетевых устройств на предмет их присутствия в сети - C#
Формулировка задачи:
Приветствую.
Прошу помощи в следующей ситуации:
Пытаюсь опросить несколько сетевых устройств на предмет их присутствия в сети, написал код вот его часть:
И тут вроде все работает как надо, но есть нюанс. На сколько я понял данная команда посылает один пакет и если приходит ответ значит оборудование в сети, но у меня есть оборудование которое на первый пакет может не ответить, а ответит только на второй и соответственно при работе данного кода приходит ответ что оборудование не в сети, хотя оно в сети и нормально пингуется если запустить на него обычную команду ping. Подскажите можно ли как то решить данную проблему? И второе, при работе данного кода, пока идет опрос всех устройств в списке, вся программа зависает и с ней ничего нельзя сделать, возможно ли это как то изменить?
Заранее спасибо.
Листинг программы
- {
- Ping pingSender = new Ping();
- PingReply reply;
- int timeout = 2500;
- chbWiFi1.BackColor = Color.Silver;
- chbWiFi2.BackColor = Color.Silver;
- chbWiFi3.BackColor = Color.Silver;
- chbWiFi4.BackColor = Color.Silver;
- System.Windows.Forms.Application.DoEvents();
- calcip(59);
- reply = pingSender.Send(tbTMP.Text, timeout);
- if (reply.Status == IPStatus.Success)
- {
- chbWiFi1.BackColor = Color.LightGreen;
- }
- else
- {
- chbWiFi1.BackColor = Color.LightCoral;
- }
- System.Windows.Forms.Application.DoEvents();
- calcip(60);
- reply = pingSender.Send(tbTMP.Text, timeout);
- if (reply.Status == IPStatus.Success)
- {
- chbWiFi2.BackColor = Color.LightGreen;
- }
- else
- {
- chbWiFi2.BackColor = Color.LightCoral;
- }
- System.Windows.Forms.Application.DoEvents();
- calcip(61);
- reply = pingSender.Send(tbTMP.Text, timeout);
- if (reply.Status == IPStatus.Success)
- {
- chbWiFi3.BackColor = Color.LightGreen;
- }
- else
- {
- chbWiFi3.BackColor = Color.LightCoral;
- }
- System.Windows.Forms.Application.DoEvents();
- calcip(62);
- reply = pingSender.Send(tbTMP.Text, timeout);
- if (reply.Status == IPStatus.Success)
- {
- chbWiFi4.BackColor = Color.LightGreen;
- }
- else
- {
- chbWiFi4.BackColor = Color.LightCoral;
- }
- System.Windows.Forms.Application.DoEvents();
- }
Решение задачи: «Опросить несколько сетевых устройств на предмет их присутствия в сети»
textual
Листинг программы
- MultiplePing ping = new MultiplePing(4);
- MultiplePingReply pingReply = ping.Send("google.com");
- if (pingReply.AllFailed)
- {
- Console.WriteLine("google.com недоступен");
- }
- else Console.WriteLine("google.com работает");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д