2008-12-02 16 views
39

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)?

¿Existe 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: Communicate through NAT Router via UPnP (Universal Plug and Play)

+2

Hey gracias por el artículo exhaustiva y el proyecto. Lo estoy probando y funciona brillantemente en un sistema Win7 de 32 bits, sin embargo, en un sistema Win7 de 64 bits, UPnPNATHelper.StaticPortMappings siempre es NULL. ¿Tendrían alguna idea sobre esto? – saurabhj

Respuesta

20

hay una biblioteca COM que es bastante fácil de acceso:

UPnP APIs Propósito

El entorno UPnP ™ permite dinámico creación de redes de dispositivos inteligentes, dispositivos inalámbricos y PC. Hay dos APIs para trabajar con dispositivos UPnP certificados:

El Punto de Control API, que consiste de un conjunto de interfaces COM que se utilizan para dispositivos de descubrimiento y control. El dispositivo Host API, que consiste en un conjunto de interfaces COM utilizados para implementar dispositivos que están alojados por una computadora.

+7

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) - http://pietschsoft.com/post.aspx?id=31200e6d-4b61-48b8-a9cb-91e3dd8e97f3 –

+1

El enlace @ChrisPietschmann está muerto desde el 14 de septiembre de 2012 – Urda

+1

@Urda, el enlace está funcionando (nuevamente). El enlace de Wayback Machine: http://web.archive.org/web/20130813184633/http://pietschsoft.com/post/2009/02/05/NET-Framework-Communicate-through-NAT-Router-via-UPnP –

3

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

5

Estas herramientas Intel UPnP se han vuelto a publicar 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á pilas C y C#. La pila C funcionará en Windows y Linux.

Ylian

+1

@ user230486 Yilan, realmente necesitas convertir esto en un COM .dll o .ocx para que las personas que usan VB6 o Delphi (o cualquier otro diseñador de .NET Win32) puedan usar todo este trabajo que hayas puesto en él. El actual upnp.dll es una pesadilla de control y no me gustaría tener que usarlo en mi peor enemigo, por favor crea un Com Wrapper al menos. –

3

Si alguien necesita una biblioteca fácil, escribí una biblioteca de clases C# que utiliza el componente COM UPnPLib. 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/

+3

enlaces muertos ...... –

+0

https://github.com/meehi/EasyUPnP –

3

Para NAT específicamente hay Mono.Nat.

23

He escrita una biblioteca UPnP totalmente gestionado alrededor de los objetos de Microsoft de control UPnP punto COM, su disposición con plena origen y un proyecto de demostración, puede descargarlo desde CodePlex aquí:

http://managedupnp.codeplex.com/

Se admite el cruce completo de los documentos de descripción UPnP utilizando una heiraquía de objetos y, entre otras cosas, es muy fácil de usar.

+2

Esto parece muy prometedor, voy a probar esto en mi proyecto. – jishi

+0

es bueno, pero los objetos subyacentes parecen rotos. el buscador de dispositivos nunca envía el paquete de descubrimiento. –

Cuestiones relacionadas