UDP via un PROXY

:hello: Bonjour,

Je souhaiterai modifier une application afin de faire passer les connections via un proxy.

j’ai donc fais un essai avec succes sur un proxy HTTP avec la commande : CONNECT site.tcp.fr:443 HTTP/1.0

Toutefois l’application utilise egalement des socket UDP. Comment faire pour ces derniers ?

De plus le proxy que j’utilise n’accepte pas la commande CONNECT sur tout les ports nottament le 29900.

Comment faire autrement sachant que les données a faire transiter sont de type binaire ?

Genre un truc du style (qui ne fonctionne pas) pourrait il faire l’affaire ? (aussi comment indiquer que c’est de l’UDP ?)

GET site.tcp.fr::29900 HTTP/1.1
Accept: application/octet-stream
Content-Encoding: base64
Proxy-Connection: Keep-Alive
Connection: Keep-Alive

Les proxy de type sock 4, sock 5 serait il plus adapté ?

Merci de votre aide. :slight_smile:

Bonjour,
il y a une réponse ici:
forum.hardware.fr…

Il me semble que tu utilise un proxy classique HTTP qui ne peut donc pas faire proxy pour d’autre protocoles qu’ils soient TCP ou UDP mais bref…

:slight_smile:

edit: c’est pas plutôt du NAT qu’il faudrait dans ce casl là?
Edité le 23/10/2007 à 10:16

kirol salut,

il y a merletn

cest des proxies pr surfer

test www.merletn.org…

Ok merci pour la liste de proxy :slight_smile:

Je vais m’orienter via des proxy de type sock qui apparemment supporte les tunnels UDP.

Sinon deltree mon appli fonctionne correctement avec un tunnel sous proxy HTTP pour les ports TCP sur les proxy adéquats. C’est juste que je ne sais pas ouvrir un tunnel de type UDP sur ce type de proxy.

Pour être plus précis sur l’application que je realise, je fais un programme qui permet de router les connexions de la nitendo DS de me fils via un proxy. J’en suis donc au stade ou toutes les connexions TCP et UDP de la DS passe par mon appli sur le PC et qui reroute pour l’instant seulement les TCP via un proxy. Reste plus faire qu’a faire passer les UDP via le proxy.

voilou.

cool, tu as l’air de maitriser ton sujet :super:
geek de père en fils :smiley:

Bon ok,

si tu le prends sur ce ton :wink:

bon voila deja ma fonction socket modifiée pour ouvrir un socket de type TCP (puisque UDP je sais pas) sur un proxy de type HTTP:

int SocketOpen3( char *HostName, int Port, char *ProxyName, int ProxyPort, BOOL ModeUDP, ULONG TimeOutMsConnect )'
{
_____int  fd_sock;
_____char buf[2048];
_____int  nb_buf;
_____long rep;
_____char vershttp[256];

_____if( ProxyPort > 0 )
_____{
__________fd_sock = SocketOpen2( ProxyName, ProxyPort, FALSE, TimeOutMsConnect, FALSE );
__________if( fd_sock >= 0 )
__________{     
_______________rep = 0;
_______________if( SocketPutS( fd_sock, "CONNECT %s:%d HTTP/1.0\r\n\r\n", HostName, Port ) > 0 )
_______________{
____________________nb_buf = SocketGetS( fd_sock, buf,sizeof(buf), 30000 );
____________________if( nb_buf > 0 )
____________________{
_________________________sscanf( buf, "HTTP/%s %ld", vershttp, &rep );

_________________________while( (nb_buf > 0) && strcmp( buf, "\r\n" ) )
______________________________nb_buf = SocketGetS( fd_sock, buf,sizeof(buf), 30000 );
____________________}
_______________}

_______________if( rep != 200 )               
_______________{
____________________SocketClose( fd_sock );
____________________fd_sock = -1;
_______________}
__________}
_____}
_____else
__________fd_sock = SocketOpen2( HostName, Port, ModeUDP, TimeOutMsConnect, FALSE );

_____return( fd_sock );
}

Bon et puis si vous en voulez plus, ya cas demander. Il suffit de commencer votre message juste par : Maitre …

(bon deltree c’est pas pour toi. on est de la meme année;).

A+

Heu… les balises CODE c’est pour pourrir le code ? par ce que ca pourris l’indentation terrible. Pas top pour un forum sur la programmation… :etonne:

Si tu utilises les tabulations, faut pas t’étonner :slight_smile: les tabulations, c’est de la merde pour indenter. Deux espaces, et pis c’est tout :wink:

Sinon, ton sujet m’intéresse: tu fais quoi au juste? Un routeur pour Nintendo DS?

Il m’intéressait à l’époque de faire un routeur Wifi pour exporter tous les jeux qui ne se jouent qu’en local (Mario Kart, mode battle par exemple) sur le Net, et ainsi ne pas passer par Nintendo mais par une sorte de grand mode Local (“WAN” :D).

En gros : la DS se connecte sans le savoir sur ton PC (qui est un client DS, ou pseudo client DS), PC qui va rediriger les paquets vers les autres DS, etc.

des tabs …
moi j’indente a 5 espaces en VC;
2 avec mon gagne pain soit un compilateur pascal (ben oui bande de … ca existe encore pi un programmeur cobol ca se fait entre 2000 et 5000 brut ;bande de debutant)

et pi le java c’est de la merde : c’est completement gratuit … hiihihihi.

bon en bref pour mon prog :

dans la DS (au niveau de la configuration CWF pour le jeu pokemon) tu mets au niveau du DNS l’IP du PC ou tourne mon appli.

qui a chaque interrogation DNS repond que c’est mon PC.

ensuite reste a ouvrir les port adequat sur le PC puis a rediriger le contenu vers ce que tu veux

ben on trinque alors :smiley: :kimouss:

(je fait du java, mais n’entrons pas dans la polémique devant Sans-Nom :ane: )
Edité le 25/10/2007 à 09:45