Можно ли использовать SNMP-трансляцию для обнаружения принтеров? - PullRequest
0 голосов
/ 25 января 2019

Я пишу программу на C # для мониторинга всех принтеров в локальной сети по протоколу SNMP с использованием библиотеки #SNMP с открытым исходным кодом (https://github.com/lextm/sharpsnmplib).
). Этот метод используется для обнаружения устройств SNMP с помощью широковещательной рассылки по всей сети UDP.(IPAddress.Broadcast = 255.255.255.255).
Я слышал и читал жалобы от сетевых администраторов на то, что вещание является плохой практикой, которую следует избегать всеми средствами из-за плохо настроенных сетей, в которых она может привести к гибели сети.
Таким образом, в качестве альтернативного метода я попробовал метод Messenger.Get той же библиотеки в цикле, посылая одноадресный запрос на каждый ip в диапазоне локальной подсети. Там я также столкнулся с проблемой - использование нециклического метода Get в циклезанимает слишком много времени. А асинхронный брат метода, GetAsync, навсегда зависает в ожидании ответа от всех незанятых ips, без возможности отменить задачу или указать время ожидания.
Я буду благодарен всем, кто может указать мнеправильное направление.

РЕДАКТИРОВАТЬ:
I 'В настоящее время мы прибегли к использованию Ping.SendPingAsync для быстрой проверки связи всех ips в подсети и последующей отправки SNMP Get тем, кто ответил на запрос ping.Но я не уверен, могу ли я доверять всем принтерам в ответ на пинги.Может ли кто-нибудь прояснить этот момент?

...