У вас есть несколько вариантов здесь.
Вы можете запустить сканирование портов по всему пространству сетевого адреса, но это довольно расточительно и недружественно.Я не рекомендую это.
Лучше было бы запрашивать устройства, использующие протокол обнаружения служб, например DNS-SD / Zeroconf (он же Bonjour ).Большинство систем Linux и Mac будут реагировать, как и многие сетевые принтеры и другие сетевые устройства.Системы Windows не поставляются с агентом DNS-SD, но его можно установить.
Чистая реализация DNS-SD на Python доступна здесь .Я использовал его в Linux, MacOS и Windows.
Если вы предпочитаете подход Microsoft, вы можете попробовать функции обнаружения UPnP , хотя я не могу подтвердить, насколько хорошо онработает или сколько систем ответит.