Tcp port mapper

Soyez le premier à donner votre avis sur cette source.

Vue 15 454 fois - Téléchargée 1 961 fois

Description

C'est un code non-vcl qui implémente un TCP PORT MAPPER, un genre de proxy qui mappe un port local vers un autr remotehost:remoteport en mode TCP.
L'utilisation la plus commune serait un proxy IRC lorsque votre administrateur reseaux "coupe le jus" aux ports 6660-6669/7000 et interdit l'accès aux proxys standards.
Le fichier start.bat permet d'initialiser l'application avec les bons parametres de ports et d'adresse. Par exemple, lorsque l'application est démarrée dans une machine (A) avec les parametres "80 eu.undernet.org 6667", on peut de n'importe quelle machine (B) nous connecter à undernet en utilisant le port 80 (la commande /server Adresse_IP_de_la_machine_A 80). Ceci est valable pour tous les services utilisant TCP comme mode de transport.
Coté implémentation il s'agit d'un serveur TCP tout ce qu'il y a de plus normal qui crée des clients vers remotehost:remoteport et les mappe avec sa connection client. Le tout est multi-threadé à fond et asynchrone, ce qui va assurer une vitesse de mapping très interessante. Chaque flux est geré par un thread. Donc au depart, on a un seul thread (celui du processus principal) et pour chaque client, 2 threads, l'un pour la lecture, l'autre pour l'ecriture. Le source n'est pas commenté mais assez explicite et ça peut facilement être détourné pour implémenter un serveur socks.
J'éspere que ce tit bout de code puisse expliquer un peu de techniques en programmation reseau/threading et qu'il vous sera util.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
6
Date d'inscription
dimanche 15 janvier 2006
Statut
Membre
Dernière intervention
16 juillet 2008

C'est interessant comme code!
et comme vous êtes les seul sur ce site interessé par la programmation réseau, à ce que je vois, j'ai une question à vous poser:
Je travaille sur un serveur de communication GPS, GPRS
et puisque ce serveur peut etre installé n'importe où dans le réseau local, et qu'il doit écouter toutes les communications entrantes à l'adresse IP globale du réseau (sur un proxy ou un routeur), la solution classique est de rediriger (redirection - port forwarding) les paquets vers l'adresse IP du serveur (locale)
y a t il des composants implémentant des technologies qui me permettront d'accéder au paquets entrants sur l'adresse IP globale? ou pourrai je exploiter le port mapper pour réaliser un tel truc??
Messages postés
51
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
8 avril 2009

Hum,
Alors après avoir bien regarder d'ou venais vraiment l'erreur,
cela viendrais de la fragmentation des packets TCP (reassembled PDU)
Lors de la transmission, ce soft comme un routeur transmet le packet + entête donc frangmentation. (cé pas optimisé tout sa hein :p )
Donc dans le cas de tunélisation comme VNC, sa plante, pour cela il faut adapter le MTU en conséquence.
Dans le cas ou le DF flag est à 1 il faut ICMP sinon fragmentation.
bon je continue de chercher...
Messages postés
51
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
8 avril 2009

Sympa ce style de programmation :p

J'ai testé sur un serveur VNC, il me trouve une erreur de protocole ?
J'ai matté c'est le VSocket qui plante...

Est-ce à cause de Winsocks ? ou d'une partie de ton code ?

(avec Analogx PortMapper ma connect VNC tourne nickel)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.