Pregunta

Estoy buscando una implementación de código abierto de un cliente UPnP en Python, y más específicamente de su Parte del dispositivo de puerta de enlace de Internet (IGD).

Por ahora, solo he podido encontrar implementaciones de UPnP Media Server, en proyectos como PyMediaServer , PyMedS , BRisa o Coherencia .

Estoy seguro de que podría usar esas bases de código como inicio, pero la parte del servidor de medios introducirá una complejidad innecesaria.

Entonces, ¿puede recomendarme una biblioteca de Python UPnP (y con suerte IGD)? Una alternativa sería enviar llamadas a una biblioteca C como MiniUPnP , pero preferiría un Python puro implementación.

Actualización: un tipo interesante y relacionado de discusión sobre SSDP y UPnP está disponible en StackOverflow .

¿Fue útil?

Solución

El código fuente de MiniUPnP contiene un código de muestra de Python que usa la biblioteca C como módulo de extensión (consulte testupnpigd.py ), que considero como una solución adecuada a mi problema.

Justificación: esta no es la solución pura de Python que estaba buscando, pero:

  • se ha invertido un esfuerzo significativo en esta biblioteca,
  • es liviano (no trata los problemas del servidor de medios),
  • IGD generalmente solo se usa en la configuración de la conexión, por lo que no integrarlo más estrictamente con el código Python no parece un problema,
  • como beneficio adicional, también proporciona una implementación NAT-PNP (el concurrente de Apple de IGD, parte de Bonjour ).

Otros consejos

Creo que realmente deberías considerar a BRisa. Recientemente se convirtió en un framework UPnP de Python puro, no enfocado solo en Media Server.

Proporciona muchos módulos y funciones utilitarios para que pueda construir e implementar su dispositivo UPnP.

El proyecto también carece de comentarios :-). Le sugiero que use el último código svn, si está dispuesto a probar BRisa.

También puede contactar a los desarrolladores en #brisa en irc.freenode.org, estamos en línea o inactivos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top