2008-10-02 9 views
7

Я бы хотел, чтобы пользователи могли перенаправлять порт на свой NAT на свой локальный компьютер для моего приложения на C++. Я хотел бы сделать эту работу на OSX & Windows. Linux был бы отличным бонусом, но пользователи Linux, вероятно, более удобны для переадресации портов вручную, поэтому это меньше беспокоит. Код типа LGPL в порядке, но я не могу использовать что-либо прямолинейное GPL.Каковы наилучшие варианты для перенаправления портов NAT?

Я хотел бы услышать какие-либо мысли или переживания кто имеет в этой области, но некоторые конкретные вопросы приходят на ум:

  • Есть ли признанная лучшая библиотека для UPNP? Клиент MiniUPNP выглядит так, как будто он может работать, но есть ли что-нибудь еще?
  • Что относительно Bonjour? Могу ли я полагаться на него для компьютеров OSX?
  • Все большие приложения bittorrent должны иметь дело с этим, так же как существует существующее исследование того, как они это делают? Что о Skype?
+0

Skype не нуждается в переадресации портов в основном режиме - он использует реле (как и многие IM): поэтому соединение с клиентом является исходящим. – 2009-05-10 04:51:51

ответ

2

MiniUPNP используется как минимум одним клиентом bittorrent (Transmission) и работает нормально.

0

Bonjour как для OS X, так и для Windows может использоваться для сопоставлений портов с маршрутизаторами, поддерживающими uPNP или NAT-PMP. Я не использовал API (DNSServiceNATPortMappingCreate), но я успешно опубликовал широкомасштабные службы как для Windows, так и для OS X за маршрутизатором NAT-PMP. Я не уверен, что ваши пользователи Windows захотят установить Bonjour (хотя они могут уже иметь его, если они используют iTunes или Safari), чтобы использовать ваше приложение, но поддержка OS X не должна быть проблемой.

+0

Можете ли вы предоставить источник здесь? для сопоставления портов в iOS. Я пытался с MiniUPNP, но мне не повезло. – 2011-09-11 20:40:08