¿Hay una biblioteca UPnP para .NET (C # o VB.NET)?

Estoy trabajando en una aplicación P2P, y necesito que se comunique a través de enrutadores NAT / cortafuegos usando UPnP. Sin embargo, no parece que .NET Framework incluya soporte para UPnP.

¿Hay una biblioteca UPnP para .NET? C # o VB.NET?

ACTUALIZACIÓN: Desde entonces he encontrado el componente COM NATUPNP 1.0 Type Library (NATUPNP.DLL) que es parte de Windows (desde Windows XP) que le permite configurar / mantener fácilmente Port Forwarding usando UPnP.

Escribí un artículo con ejemplos de código aquí: .NET Framework: comuníquese a través del Router NAT a través de UPnP (Universal Plug and Play)

Hay una biblioteca COM a la que es fácil acceder:

API UPnP Propósito

El marco UPnP ™ permite la conexión en red dinámica de dispositivos inteligentes, dispositivos inalámbricos y PC. Hay dos API para trabajar con dispositivos con certificación UPnP:

La API de punto de control , que consiste en un conjunto de interfaces COM utilizadas para buscar y controlar dispositivos. Device Host API , que consiste en un conjunto de interfaces COM que se utilizan para implementar dispositivos alojados en una computadora.

He escrito una biblioteca UPnP totalmente administrada alrededor de los objetos COM UPnP Control Point de microsoft, está disponible con fuente completa y un proyecto de demostración, puede descargarlo desde CodePlex aquí:

http://managedupnp.codeplex.com/

Es compatible con el recorrido completo de los documentos de descripción UPnP utilizando una heiraquía de objetos y, entre otras cosas, es muy fácil de usar.

Mono.Nat es una biblioteca bastante buena para upnp, al menos en mi caso tuve menos problemas hasta ahora que cuando estaba usando NATUPnP.

Puede descargarlo aquí y puede encontrar un tutorial decente sobre cómo operarlo en http://www.fluxbytes.com/csharp/upnp-port-forwarding-the-easy-way/

Estas herramientas Intel UPnP han sido relanzadas como herramientas de código abierto en: http://opentools.homeip.net . Las nuevas herramientas se denominan “Herramientas de desarrollador para tecnologías UPnP”. Están construidos en C # pero hay un generador de código gratuito que generará stacks C y C #. La stack C funcionará en Windows y Linux.

Ylian

Buscaba personalmente estas cosas y descubrió ::

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

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

Yo uso esto, que parece funcionar bien:

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

Intels UPNP Tools solía poder exportar clientes UPnP en C #. La suite está en desuso, pero aún debería funcionar.

Si alguien necesita una biblioteca fácil, escribí una biblioteca de clase de CA que utiliza el componente UPnPLib COM. Tiene algunas funciones básicas para abrir y cerrar puertos. Todavía no lo he probado en múltiples plataformas, pero funciona en Visual Studio 2010 en Windows 7. No dude en descargarlo en http://sourceforge.net/projects/easyupnp/

Para NAT específicamente hay Mono.Nat.