Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Domanda su curl

  1. #1

    Domanda su curl

    Ciao a tutti, sto pensando un modo per ridurre il traffico generato da un client (A) ed un server (C). Precisamente così:

    - Ho un programma client (A) che si connette a una mia pagina php (B) passando dei parametri
    - La mia pagina php (B) elabora i parametri e si connette a un sito (C), aspetta la risposta di (C), elabora la risposta di (C) e la spedisce ad (A).

    Quello che vorrei fare è fare in modo che (C) non si accorga se è stato chiamato tramite (A) direttamente oppure passando per (B) (cioè che risulti sempre che la richiesta arrivi da (A)).

    Quello che vorrei fare in breve è creare una "regola" con cui (A) e (B) comunicano generando il minor traffico possibile, delegando a (B) il compito di espandere le informazioni e comunicare con (C) nel modo naturale; tuttavia, visto che i client (A) sono tanti, ed ognuno ha le sue caratteristiche (IP, user-agent, ecc ecc), se li instrado tutti verso (B), il (C) non ha modo di distinguere da chi veniva la richiesta (e non posso modificare (C) che non dipende da me).

    Volevo chiedere allora: visto che la request che (B) fa a (C) l'ho scritta usando curl tramite POST, come posso fare (se si può fare) a passare a (C) tutti i dati di (A)? Con l'user-agent ci sono riuscito, ma per esempio con l'IP come si può fare?


    Grazie mille!

  2. #2




    mah tra A, B e C mi son perso... cmq nei parametri del post puoi metterci, che so, una variabile tipo "source" dove serializzi un array di dati che ti interessano. In C ti prendi sta variabile la riporti ad array e la usi...

    qualcosa di simile insomma...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Ops mi dispiace aver confuso le idee!

    Lo ridico in brevissimo: (A) si connette a (B). (B) si connette a (C). Su (A) e (B) ho pieno controllo, su (C) invece no (quindi non posso fare quello che dici tu, la struttura di (C) è fissata a priori). Se (C) chiama "$_SERVER['REMOTE_ADDR']", vede l'IP di (B), mentre io vorrei che vedesse l'ip di (A) perché (B) è solo un 'tramite' e non deve risultare a (C).

    Si può fare? Visto che (B) conosce l'ip di (A), come può fare (B) a dire a (C) che il REMOTE_ADDR non è il suo ma quello di (A)?

    RiGrazie e spero di essermi spiegato!

  4. #4
    si spiegato meglio... la risposta è no, o almeno così pare...

    se leggi quà http://www.phpfreaks.com/forums/inde...topic=221054.0 ti spiegano che se cambi l'ip, il pacchetto tcp/ip viene modificato e le risposte a quel pacchetto non arriveranno mai a te (B) ma verranno rimandate all'ip che hai messo (quello di A, quindi perse). Questo ovviamente è quello che dicono i tizi nella discussione

    cmq puoi provare con CURLOPT_INTERFACE in http://us2.php.net/manual/en/function.curl-setopt.php e impostare l'ip di A...vedi un pò che succede magari dacci un feedback sulla cosa sarebbe interessante da sapere

    ovviamente fai una prova su qualcosa che puoi debuggare per vedere se REMOTE_ADDR viene modificato correttamente nella richeista a C e soprattutto se le risposte di C tornino a B e non ad A come paventano nel primo link postato

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Grazie mille, è proprio quello che stavo cercando!

    Ho fatto dei test, e (purtroppo) è vero quello che dicono i tizi nella discussione, ovvero: mettendo in CURLOPT_INTERFACE un qualsiasi indirizzo ip X, il destinatario della trasmissione legge in REMOTE_ADDR proprio quell'indirizzo X; tuttavia, la risposta viene poi ritrasmessa proprio a X, che a meno che non è l'ip "vero" viene persa...

    In definitiva o il server sa l'ip vero del client e gli invia la risposta, o se non lo sa il client non riceverà mai nessuna risposta perché il server la manda all'ip sbagliato (tuttavia il server riceve comunque la richiesta e fa quello che deve fare, ma il client non lo saprà mai... praticamente è una richiesta "alla cieca" )


    Grazie comunque per le informazioni!

  6. #6
    prego, devo dire che se non ci fosse Google bisognerebbe inventarlo...alle volte vorrei poter tornare indietro nel tempo
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.