41

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

有 .NET 的 UPnP 库吗?C# 还是 VB.NET?

更新:我已经找到了 NATUPnP 1.0 类型库 (NATUPNP.DLL) COM 组件,它是 Windows 的一部分(从 Windows XP 开始),它允许您使用 UPnP 轻松设置/维护端口转发。

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

4

9 回答 9

24

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

http://managedupnp.codeplex.com/

它支持使用对象层次结构完全遍历 UPnP 描述文档,并且非常易于使用。

于 2011-05-20T05:59:44.343 回答
21

有一个很容易访问的 COM 库:

UPnP API用途

UPnP™ 框架支持智能设备、无线设备和 PC 的动态联网。有两个 API 可用于使用 UPnP 认证的设备:

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

于 2008-12-02T04:57:32.840 回答
8

Mono.Nat 是一个非常好的 upnp 库,至少就我而言,到目前为止,与使用 NATUPnP 时相比,我遇到的问题更少。

你可以在这里下载它,你可以在http://www.fluxbytes.com/csharp/upnp-port-forwarding-the-easy-way/找到一个关于如何操作它的不错的教程

于 2012-07-13T14:08:09.143 回答
5

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

依莲

于 2009-12-13T00:23:45.090 回答
5

亲自四处寻找这些东西,发现::

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

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

于 2012-03-01T00:10:58.673 回答
3

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

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

于 2008-12-06T22:57:24.497 回答
3

英特尔的 UPNP 工具曾经能够在 C# 中导出 UPnP 客户端。该套件已弃用,但应该仍然可以使用。

于 2009-02-11T00:24:49.273 回答
3

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

于 2011-01-02T11:00:24.577 回答
3

对于 NAT,有 Mono.Nat。

于 2011-02-21T17:38:49.380 回答