Учитывая диапазон IP-адресов, введенных пользователем (с помощью различных средств), я хочу определить, какие из этих машин имеют программное обеспечение, с которым я могу поговорить.Правильный способ сканирования диапазона IP-адресов
Вот основной процесс:
пинг этих адреса, чтобы найти доступные машины
Подключения к известному гнезду на доступных машинах
Отправить сообщение для успешно установленных розеток
Сравните ответ на ожидаемый ответ
Шаги 2-4 предназначены для меня. Каков наилучший способ реализовать первый шаг в .NET?
Я изучаю класс System.Net.NetworkInformation.Ping. Должен ли я выполнять несколько адресов одновременно для ускорения процесса? Если я пингую один адрес за раз с длинным таймаутом, это может занять много времени. Но с небольшим таймаутом я могу пропустить несколько доступных машин.
Иногда pings, кажется, терпят неудачу, даже когда я знаю, что адрес указывает на активную машину. Нужно ли дважды пингу в случае отказа от запроса?
Прежде всего, когда я сканирую большие коллекции адресов с отключенным сетевым кабелем, Ping выдает исключение NullReferenceException в FreeUnmanagedResources(). !?
Любые указатели на лучший подход к сканированию ряда IP-адресов, подобных этому?
Я все еще возникают проблемы с пинги ненадежны, но я не смог реализовать ответы, предложенные здесь, потому что они слишком много времени потребляя. –