我正在寻找一个Python 的UPnP客户端的开源实现,更具体地说是它的Internet网关设备(IGD)部分.
目前,我只能在PyMediaServer,PyMedS,BRisa或Coherence等项目中找到UPnP媒体服务器实现.
我确信我可以使用这些代码库作为开始,但媒体服务器部分将引入不必要的复杂性.
那么你能推荐一个客户端UPnP(希望是IGD)Python库吗?另一种方法是将调用调用到诸如MiniUPnP之类的C库,但我更喜欢纯Python实现.
更新:StackOverflow上提供了一个有趣的SSDP和UPnP相关讨论.
MiniUPnP源代码包含一个Python示例代码,使用C库作为扩展模块(请参阅参考资料testupnpigd.py
),我认为这是对我的问题的正确解决方案.
理由:这不是我想要的纯Python解决方案,但是:
已经在这个图书馆投入了大量的精力,
它是轻量级的(它不解决媒体服务器问题),
IGD通常仅用于连接设置,因此不能将它与Python代码紧密集成似乎不是问题,
作为奖励,它还提供NAT-PNP实现(Apple并发IGD,Bonjour的一部分).