Реализация клиента Python UPnP/IGD?

Я ищу реализацию с открытым исходным кодом UPnP клиент в Python, и более конкретно его Устройство Интернет-Шлюза (IGD) часть.

на данный момент я смог найти реализации UPnP Media Server только в таких проектах, как PyMediaServer, PyMedS, Бриса или последовательности.

Я уверен, что могу использовать эти базы кода в качестве начала, но медиа-сервер часть введет ненужную сложность.

Итак, вы можете рекомендовать библиотеку Python UPnP (и, надеюсь, IGD) клиента? Альтернативой может быть отправка вызовов в библиотеку C, такую как MiniUPnP, но я бы предпочел чистую реализацию Python.

Update: интересное, своего рода связанное обсуждение SSDP и UPnP доступно на StackOverflow.

2 ответов


исходный код MiniUPnP содержит образец кода Python, использующий библиотеку C в качестве модуля расширения (см. testupnpigd.py), который я считаю правильным решением моей проблемы.

обоснование: это не чистое решение Python, которое я искал, но:

  • значительные усилия уже были вложены в эту библиотеку,
  • он легкий (он не решает проблемы с медиа-сервером),
  • IGD обычно используется только при настройке соединения, поэтому не интеграция его плотнее с кодом Python не кажется проблемой,
  • в качестве бонуса он также предоставляет реализацию NAT-PNP (Apple concurrent IGD, часть Бонжур).

Я думаю, что вы действительно должны рассмотреть BRisa. Недавно он стал чистой платформой Python UPnP, не ориентированной только на медиа-сервер.

Он предоставляет множество utilitary модулей и функций для построения и развертывания устройства UPnP.

в проекте также отсутствует обратная связь :-). Я предлагаю вам использовать последний код svn, если вы хотите попробовать BRisa.

вы также можете связаться с разработчиками на #brisa по адресу irc.freenode.org мы либо онлайн, либо холостой ход.