Существует ли библиотека UPnP для.NET (C# или VB.NET)?
Я работаю над приложением P2P, и мне нужно, чтобы оно связывалось через NAT-маршрутизаторы / межсетевые экраны с помощью UPnP. Однако, похоже, что.NET Framework не поддерживает UPnP.
Есть ли библиотека UPnP для.NET? C# или VB.NET?
ОБНОВЛЕНИЕ: С тех пор я обнаружил COM-компонент библиотеки типов NATUPnP 1.0 (NATUPNP.DLL), который является частью Windows (начиная с Windows XP) и позволяет легко настраивать / поддерживать переадресацию портов с помощью UPnP.
Я написал статью с примерами кода здесь: .NET Framework: общение через NAT Router через UPnP (универсальный Plug and Play)
9 ответов
Существует библиотека COM, к которой достаточно легко получить доступ:
UPnP API Назначение
Инфраструктура UPnP™ обеспечивает динамическое сетевое взаимодействие интеллектуальных устройств, беспроводных устройств и ПК. Существует два API для работы с устройствами, сертифицированными UPnP:
API Control Point, который состоит из набора COM-интерфейсов, используемых для поиска и управления устройствами. Device Host API, который состоит из набора COM-интерфейсов, используемых для реализации устройств, размещенных на компьютере.
У меня есть полностью управляемая библиотека UPnP вокруг COM-объектов Microsoft UPnP Control Point, которая доступна с полным исходным кодом и демонстрационным проектом. Вы можете скачать ее с CodePlex здесь:
http://managedupnp.codeplex.com/
Он поддерживает полный обход документов описания UPnP с использованием иерархии объектов и, среди прочего, очень прост в использовании.
Mono.Nat - довольно хорошая библиотека для upnp, по крайней мере, в моем случае у меня было меньше проблем с ней, чем когда я использовал NATUPnP.
Вы можете скачать его здесь и найти достойное руководство по работе с ним по адресу http://www.fluxbytes.com/csharp/upnp-port-forwarding-the-easy-way/
Искал этот материал лично и нашел:
mono-upnp:: https://github.com/mono/mono-upnp
Mono.Nat:: https://github.com/mono/Mono.Nat
Эти инструменты Intel UPnP были переизданы как инструменты с открытым исходным кодом по адресу: http://opentools.homeip.net/. Новые инструменты называются "Инструменты разработчика для технологий UPnP". Они встроены в C#, но есть бесплатный генератор кода, который будет выводить стеки C и C#. Стек C будет работать в Windows и Linux.
Ylian
Если кому-то нужна легкая библиотека, я написал библиотеку классов aC#, в которой используется компонент UPnPLib COM. Он имеет несколько основных функций для открытия и закрытия портов. Я еще не тестировал его на нескольких платформах, но он работает на Visual Studio 2010 в Windows 7. Не стесняйтесь загружать его по адресу http://sourceforge.net/projects/easyupnp/
Я использую это, который, кажется, работает нормально:
Инструменты Intel UPNP раньше могли экспортировать клиенты UPnP в C#. Набор устарел, но все еще должен работать.