Реализация клиента Python UPnP/IGD?
Я ищу реализацию с открытым исходным кодом UPnP клиента в Python, а точнее его Устройство интернет-шлюза (IGD).
В настоящее время я смог найти решения UPnP Media Server в таких проектах, как PyMediaServer, PyMedS, BRisa или Coherence.
Я уверен, что смогу использовать эти базы кода в качестве запуска, но часть Media Server добавит ненужную сложность.
Итак, можете ли вы рекомендовать библиотеку Python для клиента UPnP (и, надеюсь, IGD)? Альтернативой будет отправка вызовов в библиотеку C, например MiniUPnP, но я бы предпочел бы чистую реализацию Python.
Обновление: интересное, родственное обсуждение SSDP и UPnP доступно на qaru.site/info/420852/....
Ответы
Ответ 1
Исходный код MiniUPnP содержит пример кода Python с использованием библиотеки C в качестве модуля расширения (см. testupnpigd.py
), который я считаю правильным решением моей проблемы.
Обоснование: это не чистое решение Python, которое я искал, но:
- В эту библиотеку уже вложены значительные усилия,
- он легковес (он не касается проблем с Media Server),
- IGD обычно используется только при настройке соединения, поэтому не интегрировать его с кодом Python не представляется проблемой,
- в качестве бонуса он также обеспечивает реализацию NAT-PNP (Apple одновременно с IGD, часть Bonjour).
Ответ 2
Я думаю, вам стоит по-настоящему рассмотреть BRisa. Недавно он стал чистым python UPnP Framework, не ориентированным только на Media Server.
Он предоставляет множество пользовательских модулей и функций для создания и развертывания вашего устройства UPnP.
В проекте также отсутствует обратная связь:-). Я предлагаю вам использовать последний svn-код, если вы хотите попробовать BRisa.
Вы также можете связаться с разработчиками на #brisa на irc.freenode.org, мы либо в сети, либо на холостом ходу.