Proxy avec pré-traitement

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 10:48

Hello, je veux faire un truc un peu compliquer donc a savoir si c'est possible

j'ai 2 ordis , A et B

A est connecté au net
B est connecté a A
A partage sa connexion a B

avec B j'appelle google.com, le proxy de A me renvoie vers le localhost de A vers index.php, donc si le index.php c'est <?php echo 'hello' ?>, B affiche 'hello'

tout ca c'est ok, mais je veux faire plus dur :

avec B j'appelle google.com, A lance le index.php et renvoie google.com pour B

et la je vois pas comment faire simplement, je peux refaire tout avec curl mais c'est pas terrible j'ai aussi de l'upload de fichier et je vais perdre des entêtes

ViPHP
ViPHP | 3300 Messages

27 sept. 2010, 15:40

si tu as moyen d'installer un serveur dns sur A ca serait sans doute plus efficace typiquement on ferait ça en éditant le fichier host de B mais si tu poses la question c'est que j'imagine que tu n'as pas possibilité de retoucher B, si A et B partagent la connexion au net, j'imagine que A est connecté en mode bridge et fait office de routeur et pourrait éventuellement avoir un serveur DHCP, avec le DHCP tu dis à B d'utiliser le DNS de A qui est configuré pour que google.com renvoit sur le localhost de A et voila.
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 17:03

B c'est un iphone,
enfaite c'est tout con, j'essaye de chopper l'api shazam,

je lance shazam, il est redirigé vers mon localhost, enregistre toutes les requête et les fichiers qu'il envoie, pour l'instant avec curl je retransmet la requête vers la vrai api, et le résultat repart vers l'iphone
shazam <-> localhost <-> api shazam
               |
           traitement
c'était plus simple pour allociné, en tout cas vive nginx parce que c'est super simple les proxy avec ca

ViPHP
ViPHP | 3300 Messages

27 sept. 2010, 18:49

Je m'y perd, en fait ton problème est que tu dois passer pour un proxy ou que tu veux passer par un proxy?
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 18:59

Je m'y perd, en fait ton problème est que tu dois passer pour un proxy ou que tu veux passer par un proxy?
le problème c'est juste que je veux pas passer par curl pour renvoyer les données vers l'iphone

ViPHP
ViPHP | 3300 Messages

27 sept. 2010, 19:32

ok, donc tu veux vraiment proxer les requêtes en provenance de ton iphone sachant que ton iphone ne tente pas de communiquer vers l'adresse finale mais bien vers ton localhost, alors j'aurais tendance à penser que c'est la qu'est l'erreur, pour proxer efficacement il faut que ton PC A soit un proxy et que ton iphone soit configuré pour utiliser A comme proxy, mais tu perds alors toute possibilité de pouvoir interagir au milieu avec du code à toi. ou alors tu gardes localhost dans ta conf iphone et tu es obligé de te coder une sorte de proxy et la curl est effectivement le meilleur choix :/
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 19:39

ok, donc tu veux vraiment proxer les requêtes en provenance de ton iphone sachant que ton iphone ne tente pas de communiquer vers l'adresse finale mais bien vers ton localhost, alors j'aurais tendance à penser que c'est la qu'est l'erreur, pour proxer efficacement il faut que ton PC A soit un proxy et que ton iphone soit configuré pour utiliser A comme proxy, mais tu perds alors toute possibilité de pouvoir interagir au milieu avec du code à toi. ou alors tu gardes localhost dans ta conf iphone et tu es obligé de te coder une sorte de proxy et la curl est effectivement le meilleur choix :/
c'est que je fais
il est wifi avec l'ordi qui lui partage ca connexion internet, sauf que je lui est mis en proxy nginx, donc toute requête de l'iphone est redirigées vers http://localhost
au niveau du localhost, mon php log les $_POST et compagnie, et ensuite avec curl je lui renvoie ca demande

donc si je fais google.com?test=blabla
l'iphone affiche bien google.com?test=blabla
et j'ai bien mon fichier log avec :
array
(
"test" => "blabla"
)

ViPHP
ViPHP | 3300 Messages

27 sept. 2010, 20:03

tu peux peut-être faire un truc avec mod_proxy sur apache, puisque finalement la problématique est pas tant le code html mais les différents fichiers multimedia (js/image/css etc) tu fopen echo pour le html, mais le reste tu le passes à mod_proxy, comme ça tu te prends pas le choux avec curl et en même temps tu as la flexibilité de pouvoir wrapper ce qu'il y a au milieu. ca pourrait être jouable tu penses?
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 20:18

faudrait doubler la requete
GET google.com ------>----------------------<------- RETURN google.com
                           \    /
                            \  /
                             \/
                          localhost
GET google.com va vers localhost et vers google.com
localhost va vers google.com

en gros y'a 2 requêtes a chaque fois

ViPHP
ViPHP | 3300 Messages

27 sept. 2010, 20:23

faudrait doubler la requete
GET google.com ------>----------------------<------- RETURN google.com
                           \    /
                            \  /
                             \/
                          localhost
GET google.com va vers localhost et vers google.com
localhost va vers google.com

en gros y'a 2 requêtes a chaque fois
Ben non, y'a pas de différence avec un système curl ou un vrai proxy, si ce n'est que tu serais dans un mode mixte ou selon ce qu'on demande on passe par du php ou vers mod_proxy, au lieu de passer systématiquement par curl ou un vrai proxy. c'est intrinsèquement équivalent.
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 20:27

enfaite tout ca c'est que je fais deja et qui marche, je veux juste ne pas a avoir refaire une 2eme requête curl pour renvoyer les données vers l'iphone

ViPHP
ViPHP | 3300 Messages

27 sept. 2010, 21:28

enfaite tout ca c'est que je fais deja et qui marche, je veux juste ne pas a avoir refaire une 2eme requête curl pour renvoyer les données vers l'iphone
on se comprend pas, moi ce que je propose c'est sans curl, avec un fopen et du mod_proxy.
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 21:45

enfaite tout ca c'est que je fais deja et qui marche, je veux juste ne pas a avoir refaire une 2eme requête curl pour renvoyer les données vers l'iphone
on se comprend pas, moi ce que je propose c'est sans curl, avec un fopen et du mod_proxy.
ok mais comment ?

ViPHP
ViPHP | 3300 Messages

27 sept. 2010, 22:15

tu peux peut-être faire un truc avec mod_proxy sur apache, puisque finalement la problématique est pas tant le code html mais les différents fichiers multimedia (js/image/css etc) tu fopen echo pour le html, mais le reste tu le passes à mod_proxy, comme ça tu te prends pas le choux avec curl et en même temps tu as la flexibilité de pouvoir wrapper ce qu'il y a au milieu. ca pourrait être jouable tu penses?
comme ça, notes que je suis pas sur de la faisabilité :)
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 5462 Messages

27 sept. 2010, 22:20

tu peux peut-être faire un truc avec mod_proxy sur apache, puisque finalement la problématique est pas tant le code html mais les différents fichiers multimedia (js/image/css etc) tu fopen echo pour le html, mais le reste tu le passes à mod_proxy, comme ça tu te prends pas le choux avec curl et en même temps tu as la flexibilité de pouvoir wrapper ce qu'il y a au milieu. ca pourrait être jouable tu penses?
comme ça, notes que je suis pas sur de la faisabilité :)
mais j'ai pas de problème pour récupèrer les fichiers, mon proxy (php curl) est transparent sauf que je veux pas passer par lui