Я создаю небольшие электронные модули для домашней автоматизации на базе чипов Arduino с подключением к Ethernet. Я попытаюсь заставить их получить IP-адрес с DHCP, если это возможно, но я также хочу создать приложение C# для настройки этих модулей, и я хотел бы, чтобы мое программное обеспечение сканировало сеть для автоматического обнаружения моих модулей, как например, драйвер принтера HP может автоматически определять принтеры в сети.
Я подумал о:
- получение IP-адреса и маски компьютера для определения набора IP-адресов
- затем многопоточные пинги или HTTP-запросы к каждому IP-адресу набора
- проверить ответы и получить mac-адреса
- посмотреть, соответствует ли mac-адрес моему набору
- сделать конкретный http-запрос, чтобы получить «модель» модуля, и знать, как с ним взаимодействовать
Является ли этот алгоритм правдоподобным или кто-нибудь знает более эффективный способ? Как широковещательные запросы на широковещательный адрес и посмотрите, что вернется? Любые образцы или идеи?