Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1343 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

réalisation d'un bot: automatisation d'une requête

n°1162417
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-07-2005 à 00:37:03  profilanswer
 

Reprise du message précédent :

micfont999 a écrit :

Pas con l'histoire de ethereal, j'y aurais pas pensé, maintenant reste à savoir déchiffrer toutes ces petites données:)


bah, y'a aucune difficulté :??:

mood
Publicité
Posté le 28-07-2005 à 00:37:03  profilanswer
 

n°1162509
esox_ch
Posté le 28-07-2005 à 06:46:39  profilanswer
 

Harkonnen a écrit :

parce que tu crois que je lis tout ? :o


 
Tout non, mais tout ce que moi j'ai dit oui ... Faut quand meme te faire une culture ... Non je n'ai pas la grosse tete ... [:adodonicoco]


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1163767
pmusa
▓▓▓▓▓▓▓
Posté le 28-07-2005 à 18:39:17  profilanswer
 

esox_ch a écrit :

Regarde dans le RFC correspondant ... a mon avi tu as foiré ta requete de GET :p


 
POST  [:aloy]  
La ligne incriminée est la suivante:

Code :
  1. $envoi= "{$this->methode} {$this->page} HTTP/1.1\n" .


 
c'est totalement correct bourdel.  :(  
 
nom merci pour ethereal quand même hein...  :) Si je commence à installer votre plugin + winamp je vais vite me faire kicker, chu pas sur mon peycey.  :non:

n°1163867
ritzle
Posté le 28-07-2005 à 20:23:18  profilanswer
 

et avec  

Code :
  1. $envoi= "{" . $this->methode . "} {" . $this->page . "} HTTP/1.1\n" .


 
?

n°1163875
pmusa
▓▓▓▓▓▓▓
Posté le 28-07-2005 à 20:32:12  profilanswer
 

encore pire mdr.  :lol: les accolades ne sont sensées être affichées comme étant des chaînes de caractère mais pour englober la variable.  ;)  
 
 
 
piteing mais elle est tout ce qu'il y a de plus correct ma syntaxe je comprend pas  :heink:

n°1163876
ritzle
Posté le 28-07-2005 à 20:36:36  profilanswer
 

j'ai pas fait attention, désolé :D

n°1163882
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-07-2005 à 20:40:17  profilanswer
 

pmusa a écrit :

encore pire mdr.  :lol: les accolades ne sont sensées être affichées comme étant des chaînes de caractère mais pour englober la variable.  ;)  
 
 
 
piteing mais elle est tout ce qu'il y a de plus correct ma syntaxe je comprend pas  :heink:


tant que tu vérifieras pas ce qui part avec Ethereal ou le plugin pour Firefox, tu tourneras en rond :spamafote:


---------------
J'ai un string dans l'array (Paris Hilton)
n°1163886
pmusa
▓▓▓▓▓▓▓
Posté le 28-07-2005 à 20:42:35  profilanswer
 

je vais écouter la voix du sage.  :jap:  
let's get Ethereal...
 
edit:
c'pour Linux.  :pfff:  
 
mais ton truc là, c'est pas comme liveHTTPheaders? (que j'ai téléchargé depuis un bon moment esox_ch, t'en fais pas  :D )


Message édité par pmusa le 28-07-2005 à 20:46:47
n°1163890
esox_ch
Posté le 28-07-2005 à 20:44:14  profilanswer
 

esox_ch a écrit :

Genre je lui ai proposé il y a 15 posts  [:adodonicoco]


 
#2


Message édité par esox_ch le 28-07-2005 à 20:44:38

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1163904
pmusa
▓▓▓▓▓▓▓
Posté le 28-07-2005 à 20:52:15  profilanswer
 

liveHTTPheaders stipule semble-t-il uniquement les headers que je recois.  :pt1cable:  
 
http://www.xxxxxxxxx.net/test.php
 
GET /test.php HTTP/1.1
Host: www.xxxxxxxxx.net
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: Apache=82.249.223.234.119881122568336608; PHPSESSID=0d1307384a141905dd4c8fc3a8314bd6
Cache-Control: max-age=0
 
HTTP/1.x 200 OK
Date: Thu, 28 Jul 2005 18:47:50 GMT
Server: Apache
Vary: Host
X-Powered-By: PHP/4.3.10
Content-Type: text/html
X-Cache: MISS from www.xxxxxxxxxxx.net
Keep-Alive: timeout=15, max=98
Connection: Keep-Alive
Transfer-Encoding: chunked
----------------------------------------------------------
http://www.xxxxxxxxxxx.net/favicon.ico
 
GET /favicon.ico HTTP/1.1
Host: www.xxxxxxxxxxxxxx.net
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
Accept: image/png,*/*;q=0.5
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: Apache=82.249.223.234.119881122568336608; PHPSESSID=0d1307384a141905dd4c8fc3a8314bd6
 
HTTP/1.x 404 Not Found
Date: Thu, 28 Jul 2005 18:47:52 GMT
Server: Apache
Keep-Alive: timeout=15, max=97
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
----------------------------------------------------------
 
http://www.designlaboratory.net/smileyyyy/heink.gif

mood
Publicité
Posté le 28-07-2005 à 20:52:15  profilanswer
 

n°1163922
esox_ch
Posté le 28-07-2005 à 21:00:23  profilanswer
 

Il faut que tu enregistre toute ta procedure du browser et qu'apres tu confronte avec celle du cURL... Et pour ce dernier t'a pas le choix ... C'est ethereal only ... Parceque la ce que tu nous donne est pas vraiment parlant


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1163934
pmusa
▓▓▓▓▓▓▓
Posté le 28-07-2005 à 21:10:21  profilanswer
 

esox_ch a écrit :

avec celle du cURL


 
pardon?  :heink:  
 
c'est téléchargé... je vais voir ce que ça raconte. [:dawa]


Message édité par pmusa le 28-07-2005 à 21:14:33
n°1163943
pmusa
▓▓▓▓▓▓▓
Posté le 28-07-2005 à 21:27:37  profilanswer
 

fodra aussi m'expliquer comment ça marche aussi ce soft.  :pt1cable:

n°1163961
esox_ch
Posté le 28-07-2005 à 21:40:05  profilanswer
 

pmusa a écrit :

pardon?  :heink:  
 
c'est téléchargé... je vais voir ce que ça raconte. [:dawa]


 
Avec la procedure du cURL.
 
Comment ça marche => Doc ou man ethereal


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1164041
pmusa
▓▓▓▓▓▓▓
Posté le 28-07-2005 à 22:41:40  profilanswer
 

z'êtes cruels avec moi.  :sweat:  pourquoi personne m'aime?  :(  
 
je vais retaper mon code en procedurial, la POO ne me reussi pas encore...

n°1164269
esox_ch
Posté le 29-07-2005 à 09:19:51  profilanswer
 

Le probleme vient surment pas de l'OO, utilise ce programme bordel et APRES viens nous dire ce qui plante


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1164883
ratibus
Posté le 29-07-2005 à 15:26:39  profilanswer
 

Il te manque la ligne Host: ton_site dans ta requete HTTP (pour être conforme HTTP/1.1).
 
Et oui faut faire suivre le cookie dans toute tes requetes HTTP pour rester connecté ;)

n°1165417
pmusa
▓▓▓▓▓▓▓
Posté le 30-07-2005 à 09:46:10  profilanswer
 

ratribus is right!  :love: en fait cet enfoiré m'a pris la tête parce que j'avais interposé un espace entre Host et : !!http://www.designlaboratory.net/smileyyyy/boxe.gif
incroyable! autrement j'avais je n'avais pas omis de stipuler cette ligne.  le message d'erreur "invalid hostname" nous aurais mis la puce à l'oreille avec un peu d'attention...
 
bon bah je peux enfin continuer un peu... j'arrive pas encore à récuperer les headers émis par le serveur sur lequel je me connecte mais ça doit surement être un leger problème de regexp.
 
merci pour la précision concernant le suivi des cookies, je m'en doutais.  :jap:

n°1165422
pmusa
▓▓▓▓▓▓▓
Posté le 30-07-2005 à 10:17:34  profilanswer
 

petit problème:
 
j'aimerai bien recupéré les headers que m'envoi le serveur, à commencer par l'http-version et le statut de la requete (ex: HTTP/1.x 200 OK). seulement ma regexp ne marche pas, du coup je me demande si la boucle while est operationnel:

Code :
  1. while(!feof($fp)):
  2. $ligne = fgets($fp,4096);
  3. //tralala
  4. endwhile;


 
pour tester, je fais un echo $ligne mais... niet.  :( ça ne renvoi pas les éléments de la page.
 

n°1165485
pmusa
▓▓▓▓▓▓▓
Posté le 30-07-2005 à 12:30:49  profilanswer
 

ptit up d'impatience et d'espoir

n°1165608
pmusa
▓▓▓▓▓▓▓
Posté le 30-07-2005 à 17:48:00  profilanswer
 

bordel j'ai corrigé mon problème.  :sol:  
jvous tiens au courant si y'en a un autre qui se pointe.  :jap:

n°1165635
pmusa
▓▓▓▓▓▓▓
Posté le 30-07-2005 à 18:24:13  profilanswer
 

ça ne s'est pas fait attendre bien longtemps.  :D  
l'erreur retourné est de type 400, une bad request:
Your browser sent a request that this server could not understand.
 
The request line contained invalid characters following the protocol string.
 
le message est très clair mais encore faut-il deceler une erreure...
 
la fonction

Code :
  1. function envoi_req(){
  2. $envoi= "$this->methode $this->page HTTP/1.1\n" .
  3.  "Host: {$this->serveur}\n" .
  4.  "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
  5. \n" .
  6.  "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
  7. \n";
  8. if(isset($this->moncookie)){
  9. $envoi .= "Cookie: ";
  10. foreach($this->moncookie as $clef => $valeur){
  11. $envoi .= "$clef={$valeur}; ";}
  12. $envoi = substr($envoi,0,-1); //pour kicker le char ;
  13. $envoi .= "\n";
  14. }
  15. if(isset($this->post)){
  16.  $envoi .=   "Content-type: application/x-www-form-urlencoded\n".
  17.     "Content-Length: " . strlen($this->post) . "\n";
  18. }
  19. echo "envoi req ok!<br />\r\n";
  20. return $envoi . "\n";
  21. }


 
et comment j'instancie:
 

Code :
  1. <?php
  2. include('socket.class.php');
  3. $s = new socket('www.xxx.com',80);
  4. $cookie = array('id'=>0000,'id2'=>0000);
  5. $s->definir_moncookie($cookie);
  6. $s->url_post("/dir1/dir2/dir3/page4.php",'nom=moi&prenom=moi&password=moi&mail=moi');
  7. $s->envoi_req();
  8. $s->execute();
  9. /* les 3 lignes qui suivent me permettent de tester la validité de mes regexp. j'ai reussi à corriger les headers reçus, mais pas les cookies. je reglerai ce dernier point très vite je pense. */
  10. print_r($s->headers); echo "<br /><br />";
  11. print_r($s->moncookie); echo "<br /><br />";
  12. print_r($s->recep_cookie); echo "<br /><br />";
  13. ?>
  14. merci  :jap:


 
je pense que ça vient des variables que j'envoi pour me logguer... vu que je n'arrive plus à me logguer.  :pfff:


Message édité par pmusa le 30-07-2005 à 18:26:29
n°1165702
esox_ch
Posté le 30-07-2005 à 19:51:17  profilanswer
 

Regarde ce que tu lui envoies comme requete et compare la avec ce que ton browser lui envoi


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1165749
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 30-07-2005 à 20:50:50  profilanswer
 

je voudrais bien esox_ch mais je ne sais pas trop comment faire.  :D  
si j'ai encore besoin d'ethereal non merci, ça fait 6 fois que je le lance et 6 fois que je comprend rien.  :pt1cable:  
et en plus ça claque comme il faut le pauvra petit 450Mhz que j'ai sous le bureau. :/
 
help

n°1165750
mcjoedassi​n
Posté le 30-07-2005 à 20:52:09  profilanswer
 

c'est exactement le genre de programme que je ferai en perl ... probablement une dizaine de lignes ...
 
netcat peut être pratique pour voir quelles requetes sont réalisées par un browser... dans ce cas précis il manque  
host: nomdhote.com

n°1165751
mcjoedassi​n
Posté le 30-07-2005 à 20:52:43  profilanswer
 

youps, j'avais pas vu la page 2 ;)

n°1165789
esox_ch
Posté le 30-07-2005 à 21:51:34  profilanswer
 

bein ... A part ethereal ... je vois pas comment tu peux faire ... Faut te lire un peu la doc ... les fonctions de base sont assez faciles... parcontre c clair que tu dois couper toutes tes autres appli reseau avant sinon tu vas morfler :D (genre pas de msn, bittorent,...)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1165939
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 31-07-2005 à 11:39:25  profilanswer
 

je perd trop de temps sur ce foutu problème.  :pfff:  
 
 
up.  [:airforceone]  
 
jvais essayer de chercher de la doc ouais...  :(

n°1165944
mcjoedassi​n
Posté le 31-07-2005 à 11:45:20  profilanswer
 

c'est quoi ton problème ?

n°1165954
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 31-07-2005 à 12:02:35  profilanswer
 

j'arrive pas à me logguer sur un site de test. :/
le serveur renvoi un "bad request 400" comme quoi il y a une erreur dans les entêtes que j'envoi. confère toi aux quelques postent plus haut sur cette page pour plus d'infos.  :)  
 
dernière correction en date: en relisant mon code, je me suis aperçu que, dejà, j'avais omis d'envoyer mes couples clef/valeur au serveur.  [:bambookillah]  
 
mais bon, faux espoirs, tjrs le même message d'erreur.
 
je viens de trouver de la doc FR sur ethereal, je vais feuilleter ces quelques 20aines de pages (que je suis en train d'imprimer)
 
j'attend tjrs un peu d'aide...

n°1165958
mcjoedassi​n
Posté le 31-07-2005 à 12:15:46  profilanswer
 

salut
utilises netcat pour voir quelles requêtes tu fait :
> nc -l -p 1234
ouvre un serveur sur ton port 1234
testes ensuite ton script sur http://localhost:1234/
 
tu as commencé par intéroger le serveur à la main via un telnet/netcat ?

n°1165959
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 31-07-2005 à 12:15:52  profilanswer
 

mais t'as pas encore soldé ce problème ?
- tu installes Firefox
- tu installes son plugin LiveHTTPHeaders
- tu te connectes à ton site, et tu regardes la requete envoyée que tu prends soin de sauvegarder
- tu lances Ethereal
- tu lances une capture sur l'interface reliée au modem
- tu testes ton appli
- tu stoppes la capture
- tu recherche une capture HTTP
- clic droit sur cette capture -> "Follow TCP Stream"
 
-> et tu as sous les yeux la requete que ton appli a envoyée. il ne te reste qu'à comparer avec la capture de LiveHTTPHeaders
 
sans déconner, je comprends pas qu'un problème aussi simple traine sur plusieurs jours


---------------
J'ai un string dans l'array (Paris Hilton)
n°1165961
mcjoedassi​n
Posté le 31-07-2005 à 12:29:13  profilanswer
 

fait un echo et donne nous la requete effectuée par ton script !

n°1166010
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 31-07-2005 à 14:18:42  profilanswer
 

i wooooooooooooooooooooooooooon! biatch app! http://www.designlaboratory.net/smileyyyy/winner.gif
 
vous voulez rire?
1.j'ai lu une doc de 20 pages sur Ethereal.  
2.j'ai imprimé ma class et relu 10 fois.
3.j'ai bossé avec le soft pendant 45min pour voir ce qui n'allait pas.
4.Ethereal n'a finalement servi à rien...  :D  
 
l'erreur? des espaces entre mes entêtes et les \r\n http://www.designlaboratory.net/smileyyyy/winner.gif
 
 [:bambookillah]  
 
je commence à croire que PHP demande de la rigeur. :/
 
je peux enfin continuer.  :jap:  
 
je vous tiens au courant.
 
ptain ça fait plaisir. deux jour que je butais dessus.  :pfff:

n°1166056
ratibus
Posté le 31-07-2005 à 16:07:30  profilanswer
 

C'est pas PHP sur ce coup pour la rigueur c'est HTTP ;)

n°1166131
esox_ch
Posté le 31-07-2005 à 18:46:53  profilanswer
 

ratibus a écrit :

C'est pas PHP sur ce coup pour la rigueur c'est HTTP ;)


+1


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Problème de requete sql..nécessité d'une requete récursive??[Résolu] simple requete en VBA :)
Pb de calcul avec une requête SQLrequete group by ?
[Access] Requête à partir d'une zone de texte (Résolu)problème récupération de donnée après une requete
[ resolu - sql help ] requete sql not inRequete de suppression en cascade
ACCESS requete SQLProbleme dans requete sql
Plus de sujets relatifs à : réalisation d'un bot: automatisation d'une requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR