是否有用于.NET的UPnP库(C#或VB.NET)?

时间:2008-12-02 04:47:22

标签: .net networking upnp

我正在研究P2P应用程序,我需要使用UPnP通过NAT路由器/防火墙进行通信。但是,.NET Framework似乎不包含对UPnP的支持。

是否有适用于.NET的UPnP库? C#还是VB.NET?

更新:我后来发现NAT组件库(NATUPNP.DLL)是Windows的一部分(自Windows XP以来),它允许您使用UPnP轻松设置/维护端口转发。

我在这里写了一篇包含代码示例的文章: .NET Framework: Communicate through NAT Router via UPnP (Universal Plug and Play)

9 个答案:

答案 0 :(得分:23)

我在微软UPnP控制点COM对象周围编写了一个完全托管的UPnP库,它有完整的源代码和一个演示项目,您可以从CodePlex下载它:

http://managedupnp.codeplex.com/

它支持使用对象heirachy完全遍历UPnP描述文档,其中包括非常容易使用。

答案 1 :(得分:21)

有一个易于访问的COM库:

  

UPnP APIs目的

     

UPnP™框架支持动态   智能家电网络,   无线设备和PC。有   两个用于处理的API   UPnP认证的设备:

     

控制点API ,其中包含   用于的一组COM接口   查找和控制设备。 设备   主机API ,它由一组   用于实现的COM接口   由计算机托管的设备。

答案 2 :(得分:7)

Mono.Nat是upnp的一个非常好的库,至少在我的情况下,到目前为止,我使用NATUPnP时遇到的问题较少。

你可以下载它here,你可以在http://www.fluxbytes.com/csharp/upnp-port-forwarding-the-easy-way/

找到一个关于如何操作它的体面教程

答案 3 :(得分:5)

此英特尔UPnP工具已作为开源工具重新发布:http://opentools.homeip.net。这些新工具被称为“UPnP技术的开发人员工具”。它们是用C#构建的,但是有一个免费的代码生成器可以输出C和C#堆栈。 C堆栈可以在Windows和Linux上运行。

Ylian

答案 4 :(得分:5)

亲自寻找这些东西并找到了::

mono-upnp :: https://github.com/mono/mono-upnp

Mono.Nat :: https://github.com/mono/Mono.Nat

答案 5 :(得分:3)

我使用它,这似乎工作正常:

http://code.google.com/p/dotnetportmapper/

答案 6 :(得分:3)

Intels UPNP Tools过去能够在C#中导出UPnP客户端。该套件已被弃用但仍应有效。

答案 7 :(得分:3)

如果有人需要一个简单的库,我写了一个使用UPnPLib COM组件的c#类库。它具有一些打开和关闭端口的基本功能。我还没有在多个平台上测试它,但它适用于Windows 7中的Visual Studio 2010.可以在http://sourceforge.net/projects/easyupnp/

下载它。

答案 8 :(得分:3)

对于NAT,特别是有Mono.Nat。