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