IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PEAR] [cURL][Net_ping] Problème proxy


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 26
    Points : 23
    Points
    23
    Par défaut [PEAR] [cURL][Net_ping] Problème proxy
    Bonjour,

    je fais des tests unitaires sur une api XML (je calcule le temps d'execution avec microtime de chaque requete) et je souhaiterais récupérer les temps de réponses d'un ping sur le serveur pour enlever le temps réseau de mes calculs.

    PROBLEME :
    Je passe par un proxy qui a l'air de bloquer le ping extérieur. (ping www.google.fr ne passe pas sous windows)

    J'ai utilisé la classe Net_ping qui marche très bien sur une IP locale mais pas sur une ip extérieur du au proxy. (je doit pinguer sur http://ip:port)

    Connaissez vous un moyen de passer le proxy ou bien de simuler un ping en PHP sans passer par les commandes system ?

    Pour passer le proxy, j'utiliser curl pour exécuter mes scripts à distance. peut on faire du ping avec curl?

    Je suis preneur de toutes solutions, astuces pour récupérer un temps réseau.

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 71
    Points
    71
    Par défaut
    et avec un fsockopen ?
    tu calcules le temps avant de le faire, puis le temps apres , et tu soustrais ? theoriquement ca reviendrai au meme ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Merci de ta réponses très rapide

    Je vais tester cette solution et je vous tiens au courant

    Merci beaucoup

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Bon,

    J'ai fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $t1 = microtime(true);
    	if(!fsockopen ("http://x.x.x.x/",y)){
    		addLog("*** IMPOSSIBLE DE SE CONNECTER PAR SOCKET ***");
    	}
    	$t2 = microtime(true);
    	addLog("*** TEMPS SOCKET : ".round($t2-$t1, 3));
    et je reçoit toujours le message d'erreur ! donc ma socket ne passe pas le proxy.

    Je vais essayer avec curl (puisque je peux lui mettre en option un proxy !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Bon alors :

    voici mon code curl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $ch = curl_init("http:x.x.x.x:y");
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);	
    	curl_setopt($ch, CURLOPT_PROXY, "http://xxx");
    	curl_setopt($ch, CURLOPT_PROXYPORT, y);
    	$t1 = microtime(true);
    	$output = curl_exec ($ch);
            $t2 = microtime(true);
    	addLog($output);
    	curl_close ($ch);
    	addLog("*** TEMPS PING : ".round($t2-$t1, 3));
    cela me retoune :
    09-11-2007 11:34:05]
    Server Error
    The following error occurred:

    [code=UNRECOGNIZED_REQUEST] The browser is sending an invalid request. Contact your system administrator.
    Please contact the administrator.
    [09-11-2007 11:34:05] *** TEMPS PING : 0.008
    Est-ce qu'une telle réponse peut être assimilé à un temps réseau ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Pour le proxy ce n'est pas une URL mais une adresse (éventuellement suivie du port - ie : IP:PORT).

    Sachez que vous pouvez obtenir différentes informations concernant le temps écoulé aux différentes phases de la connexion en interne par cURL via la fonction curl_getinfo.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Ok merci pour cette fonction miracle, ca va résoudre toutes mes souffrances

    en gros, je récupère ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Array ( 
    [url] => http://....
    [content_type] => text/xml; charset=UTF-8 
    [http_code] => 200 
    [header_size] => 276 
    [request_size] => 1294 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0
    [total_time] => 0.064 
    [namelookup_time] => 0 
    [connect_time] => 0.004 
    [pretransfer_time] => 0.004 
    [size_upload] => 0 
    [size_download] => 129 
    [speed_download] => 2015 
    [speed_upload] => 0 
    [download_content_length] => 129 
    [upload_content_length] => 0 
    [starttransfer_time] => 0.064 
    [redirect_time] => 0 )
    donc si j'ai bien compris, pour calculer le temps d'exécution de mon script à distance, il faut que je fasse :
    tps_exe = starttransfer_time - connect_time

    Temps, en secondes, écoulé entre le début et l'envoi du premier octet du transfert MOINS Temps mis en secondes depuis le début à l'établissement de la connexion avec l'hôte distant ou le proxy.

    Dois je aussi soustraire le pretransfer_time (Délai (en secondes) séparant le début au début du transfert. Cette étape inclue l'envoi des pré-commandes comme le permet l'option CURLOPT_QUOTE, par exemple) ???

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Je n'ai plus les détails en tête (on les retrouve dans la documentation de cURL) mais le temps écoulé est cumulé à chaque phase. Par exemple le temps de connexion inclut celui de résolution et ainsi de suite. Donc votre (deuxième) méthode de calcul me semble inadaptée (attention également aux éventuelles redirections suivies, qui interviennent à la fin).

Discussions similaires

  1. [PEAR][DB] [Db_DataObject_FormBuilder] Problème avec create
    Par Elboras dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/07/2010, 18h11
  2. [cURL] Passer un proxy avec PHP 5
    Par sergei88 dans le forum Bibliothèques et frameworks
    Réponses: 21
    Dernier message: 15/04/2010, 16h33
  3. [PEAR][DB] PHPonTrax : problème de connexion à mysql
    Par Ttienne dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/10/2006, 12h40
  4. [cURL] Gérer le proxy avec curl
    Par DaSoul dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/03/2006, 23h18
  5. [PEAR][Mail] [Mail_Mime] problème sur la version texte de mon mail
    Par yiannis dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 21/12/2005, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo