Python UPnP/IGD客户端实现?

12

我正在寻找一个用Python实现的开源UPnP客户端,更具体地说是它的Internet Gateway Device(IGD)部分。

目前,我只能找到UPnP媒体服务器的实现,例如PyMediaServerPyMedSBRisaCoherence等项目。

我确定我可以将这些代码库用作起点,但媒体服务器部分会引入不必要的复杂性。

所以你能否推荐一个客户端UPnP(希望包括IGD)的Python库?另一种选择是将调用分派到C库,例如MiniUPnP,但我更喜欢纯Python实现。

更新:有一个关于SSDP和UPnP的有趣且相关的讨论可在StackOverflow上查看。

2个回答

7

MiniUPnP源代码包含一个使用C库作为扩展模块的Python示例代码(参见testupnpigd.py),我认为这是解决我的问题的合适方案。

原因:虽然这不是我寻找的纯Python解决方案,但:

  • 已经在该库中投入了大量的工作,
  • 它很轻巧(不涉及媒体服务器问题),
  • IGD通常仅在连接设置时使用,因此不将其与Python代码更紧密地集成似乎不是问题,
  • 额外的好处是,它还提供了NAT-PNP实现(Apple并发IGD的一部分,属于Bonjour)。

2

我认为你应该真正考虑BRisa。它最近成为了一个纯Python的UPnP框架,不仅仅专注于媒体服务器。

它提供了许多实用模块和函数,供您构建和部署UPnP设备使用。

该项目还缺乏反馈意见 :-)。如果您想尝试BRisa,我建议您使用最新的svn代码。

您也可以在irc.freenode.org的#brisa上联系开发人员,我们在线或离线。


我花了一些时间研究你的文档,但我正在寻找一个非常简单、模块化的库。在我看来,BRisa并不是这样的。 - oparisy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接