2008-10-02 21 views
7

J'aimerais que les utilisateurs puissent transférer facilement un port sur leur NAT vers leur machine locale pour mon application C++. Je voudrais faire ce travail sur OSX & Windows. Linux serait un gros bonus, mais les utilisateurs de Linux sont probablement plus à l'aise pour rediriger les ports manuellement, donc c'est moins un problème. Le code de type LGPL est OK, mais je ne peux pas utiliser quoi que ce soit qui soit directement GPL.Quelles sont les meilleures options pour le transfert de port NAT?

J'aimerais entendre des pensées ou des expériences quelqu'un a eu dans ce domaine, mais quelques questions spécifiques viennent à l'esprit:

  • Y at-il une meilleure bibliothèque reconnue pour UPNP? Le client MiniUPNP semble fonctionner, mais y a-t-il autre chose?
  • Qu'en est-il de Bonjour? Puis-je m'en servir pour les ordinateurs OSX?
  • Toutes les grandes applications BitTorrent doivent faire face à cela, donc existe-t-il un sondage existant sur la façon dont ils le font? Et à propos de Skype?
+0

Skype n'a pas besoin de rediriger les ports en mode natif - il utilise un relais (comme de nombreux messages instantanés): la connexion du client est donc sortante. –

Répondre

2

MiniUPNP est utilisé par au moins un client bittorrent (Transmission) et devrait fonctionner correctement.

0

Bonjour sur OS X et Windows peut être utilisé pour faire des mappages de ports avec des routeurs qui prennent en charge uPNP ou NAT-PMP. Je n'ai pas utilisé le API (DNSServiceNATPortMappingCreate) mais j'ai réussi à publier des services étendus sur Windows et OS X derrière un routeur NAT-PMP. Je ne sais pas si vos utilisateurs Windows voudront installer Bonjour (bien qu'ils puissent déjà l'utiliser s'ils utilisent iTunes ou Safari) pour utiliser votre application, mais la prise en charge d'OS X ne devrait pas poser de problème.

+0

Peut-on fournir la source ici? pour le mappage de port dans iOS. J'ai essayé avec MiniUPNP mais pas de chance pour moi. –