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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7
Auteur Sujet :

Les bots : programmation, pièges, principes, etc....

n°391687
benou
Posté le 13-05-2003 à 11:34:49  profilanswer
 

Reprise du message précédent :
moi j'ai fait ca à la main avec des sokets ...

mood
Publicité
Posté le 13-05-2003 à 11:34:49  profilanswer
 

n°391691
bobuse
Posté le 13-05-2003 à 11:35:59  profilanswer
 

benou a écrit :

moi j'ai fait ca à la main avec des sokets ...  


... de grand-mere ? :love:
 
 
[:tomtom75]


Message édité par bobuse le 13-05-2003 à 11:36:27

---------------
get amaroK plugin
n°391696
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 11:38:19  profilanswer
 

benou a écrit :


le problème c'est que mon algo a besoin qu'un nouveau topic du même nom passe devant l'ancien de façon à ce que je ne continue pas à poster dessus ... et puis bon... ca me dérange un peu de faire des tests sur blabla ...


pourquoi ne pas poster sous mutex ? ça t'éviterait de chercher un topic du même nom, sachant que le thread prend le mutex quand numTopic == 999, il ne postera de toute façon qu'une fois. et une fois que j'ai vérifié que numTopic < 500, alors je libère le mutex.


---------------
J'ai un string dans l'array (Paris Hilton)
n°391699
harrysauce
Miaaaooou!
Posté le 13-05-2003 à 11:40:30  profilanswer
 

Harkonnen a écrit :


pourquoi ne pas poster sous mutex ? ça t'éviterait de chercher un topic du même nom, sachant que le thread prend le mutex quand numTopic == 999, il ne postera de toute façon qu'une fois. et une fois que j'ai vérifié que numTopic < 500, alors je libère le mutex.

excusez mon ignorance mais c'est quoi un mutex???

n°391702
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 11:41:56  profilanswer
 

bobuse a écrit :

Bon alors, je vais faire mon gros newbie ... comment on s'y prend pour poster un message ?


J'utilise effectivement POST, et j'indique comme Content-Type = "application/x-www-form-urlencoded".
Ensuite j'écris les variables correspondantes (pseudo, sujet, password, verifrequete, etc...) à l'URL de la BDD du forum (lisible en affichant le source du formulaire de réponse ;))


---------------
J'ai un string dans l'array (Paris Hilton)
n°391704
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 11:44:43  profilanswer
 

harrysauce a écrit :

excusez mon ignorance mais c'est quoi un mutex???


c'est une section de ton code qui est verrouillée. ça s'utilise surtout en programmation multithread ou multiprocess, et ça permet de locker une section si un thread s'y trouve (les autres threads n'y rentrent pas tant que le thread qui est dans cette section n'a pas libéré le mutex)
 
Mutex == Mutual Exclusion


---------------
J'ai un string dans l'array (Paris Hilton)
n°391714
harrysauce
Miaaaooou!
Posté le 13-05-2003 à 11:48:14  profilanswer
 

Harkonnen a écrit :


c'est une section de ton code qui est verrouillée. ça s'utilise surtout en programmation multithread ou multiprocess, et ça permet de locker une section si un thread s'y trouve (les autres threads n'y rentrent pas tant que le thread qui est dans cette section n'a pas libéré le mutex)
 
Mutex == Mutual Exclusion


ok, merci
A l'iut, cette année, on a eu un cours sur les exclusions mutuelles en plus(algo de de Deckker je crois)


Message édité par harrysauce le 13-05-2003 à 11:49:22
n°391741
bobuse
Posté le 13-05-2003 à 12:02:39  profilanswer
 

Harkonnen a écrit :


J'utilise effectivement POST, et j'indique comme Content-Type = "application/x-www-form-urlencoded".
Ensuite j'écris les variables correspondantes (pseudo, sujet, password, verifrequete, etc...) à l'URL de la BDD du forum (lisible en affichant le source du formulaire de réponse ;))


ok, mais en Java, on envoie comment les variables ?
du genre :

Code :
  1. URL url = new URL("http://forum.hardware.fr/bdd.php3?interface=&config="/*... tous les params*/);


 
ou plutot du genre :

Code :
  1. URL url = new URL("http://forum.hardware.fr/bdd.php3" );
  2. URLConnection connection = url.openConnection();
  3. connection.setDoOutput(true);
  4. PrintWriter out = new PrintWriter(connection.getOutputStream());
  5. out.println("interface=&config="/*... tous les params*/);
  6. out.close();
  7. //...


---------------
get amaroK plugin
n°391748
polo021
Posté le 13-05-2003 à 12:10:09  profilanswer
 

pourquoi vous utilisez des mutex?
Et y a pas moyen d'utilisier un seul thread (le pgm lui meme) qui detecte le post 999 et post directement?
 
Vous pourriez peut etre aussi donner quelques details plus technique.

n°391750
benou
Posté le 13-05-2003 à 12:10:53  profilanswer
 

bobuse>
c'est ce que j'avais commencé à faire mais c'est vraiment la merde à utiliser cette classe.  
J'aime pas du tout !
je trouve que c'est plus simple de faire par socket : on voit exactement ce qui passe, et c'est tout aussi facile et rapide à écrire !


Message édité par benou le 13-05-2003 à 12:11:07
mood
Publicité
Posté le 13-05-2003 à 12:10:53  profilanswer
 

n°391756
kadreg
profil: Utilisateur
Posté le 13-05-2003 à 12:13:32  profilanswer
 

polo021 a écrit :


Et y a pas moyen d'utilisier un seul thread (le pgm lui meme) qui detecte le post 999 et post directement?


 
Si, mon premier bot faisait ça.
 
Mais il s'avère qu'il passe ne fait 95% du temps à attendre la réponse du serveur, en parallélisant, tu diminue les intervalles entre deux vérifications.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°391757
bobuse
Posté le 13-05-2003 à 12:14:07  profilanswer
 

benou a écrit :

bobuse>
c'est ce que j'avais commencé à faire mais c'est vraiment la merde à utiliser cette classe.  
J'aime pas du tout !
je trouve que c'est plus simple de faire par socket : on voit exactement ce qui passe, et c'est tout aussi facile et rapide à écrire !


d'accord maitre, comme vous voudrez maitre [:prosterne] ;)


---------------
get amaroK plugin
n°391775
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 12:27:52  profilanswer
 

polo021 a écrit :

pourquoi vous utilisez des mutex?
Et y a pas moyen d'utilisier un seul thread (le pgm lui meme) qui detecte le post 999 et post directement?


mon bot en assembleur faisait ça, mais il passait tout son temps à attendre la page du serveur. et du coup, il m'arrivait de recevoir la réponse alors que le split avait déja eu lieu, d'ou la réputation de "bot deuzer" de mon bot :d
les threads permettent de diminuer l'intervalle entre 2 vérifications du forum.
 
edit: grilled en beauté par kadreg


Message édité par Harkonnen le 13-05-2003 à 12:28:49

---------------
J'ai un string dans l'array (Paris Hilton)
n°391778
gm_superst​ar
Appelez-moi Super
Posté le 13-05-2003 à 12:30:17  profilanswer
 

Vds. split-bot 100% réuss. Ap. 20h faire offre.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°391785
polo021
Posté le 13-05-2003 à 12:36:07  profilanswer
 

kadreg et harko ont écrit :


 
Si, mon premier bot faisait ça.
 
attendre la réponse du serveur, en parallélisant, tu diminue les intervalles entre deux vérifications.


merci pour ces details. :jap:
 
vous envoyez quoi comme message par votre socket pour qu'il poste un message bien precis?
Vous pourriez tous les trois nous montrer la requete? Je suis curieux pour ca


Message édité par polo021 le 13-05-2003 à 12:56:26
n°391880
bobuse
Posté le 13-05-2003 à 13:54:52  profilanswer
 

polo021 a écrit :


merci pour ces details. :jap:
 
vous envoyez quoi comme message par votre socket pour qu'il poste un message bien precis?
Vous pourriez tous les trois nous montrer la requete? Je suis curieux pour ca
 


oui siouplait, merci :D


---------------
get amaroK plugin
n°391894
lorill
Posté le 13-05-2003 à 14:03:52  profilanswer
 

http://equinoxe.dnsalias.org/PERSO/pyqaplop/forum.py

Code :
  1. def postMessage(self, category, section, post, content, subject="plop", login=None, passwd=None):
  2.        """
  3.            Poste un message dans le forum
  4.        """
  5.        if login == None:
  6.           login = config.login
  7.        if passwd == None:
  8.           passwd = config.passwd
  9.        params = {"pseudo": login,
  10.                  "password": passwd,
  11.                  "cat": category,
  12.                  "subcat": section,
  13.                  "post": post,
  14.                  "contenu": content,
  15.                  "sujet": subject,
  16.                  "verifrequet": "1100"}                   
  17.        params = urlencode(params)
  18.        fd = urlopen(config.posturl, params)
  19.        fd.close()

n°391925
bobuse
Posté le 13-05-2003 à 14:17:55  profilanswer
 

lorill a écrit :

http://equinoxe.dnsalias.org/PERSO/pyqaplop/forum.py

Code :
  1. def postMessage(self, category, section, post, content, subject="plop", login=None, passwd=None):
  2.        """
  3.            Poste un message dans le forum
  4.        """
  5.        if login == None:
  6.           login = config.login
  7.        if passwd == None:
  8.           passwd = config.passwd
  9.        params = {"pseudo": login,
  10.                  "password": passwd,
  11.                  "cat": category,
  12.                  "subcat": section,
  13.                  "post": post,
  14.                  "contenu": content,
  15.                  "sujet": subject,
  16.                  "verifrequet": "1100"}                   
  17.        params = urlencode(params)
  18.        fd = urlopen(config.posturl, params)
  19.        fd.close()




ouaip, urlencode(), ca fait quoi ? (Je touche pas une bille en python)


---------------
get amaroK plugin
n°391929
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 14:18:30  profilanswer
 

moi j'envoie ça (sur mon bot en asm, sur celui en C# je passe par un stream) :
 
POST http://forum.hardware.fr/bdd.php3 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: (le nombre de caractères des données)
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
 
J'attends la réponse du serveur et j'envoie ensuite les données :
 
pseudo=Harkonnen&password=pass&cat=10&sujet=DaHarkoBot+%3e+Bot+sur+la+rampe+de+lancement+%5b+%3a+yaisse2+%5d&post=36410
 
C'est tout simple


---------------
J'ai un string dans l'array (Paris Hilton)
n°391934
lorill
Posté le 13-05-2003 à 14:19:24  profilanswer
 

bobuse a écrit :


ouaip, urlencode(), ca fait quoi ? (Je touche pas une bille en python)


devine  :sarcastic:  
tu fais bien du java non ? URLEncoder, ca te dis qqch ? et vu le contexte, tu peux pas trouver ?
 
ben ca encode les caracteres speciaux, tout connement.

n°391936
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 14:19:53  profilanswer
 

bobuse a écrit :


ouaip, urlencode(), ca fait quoi ? (Je touche pas une bille en python)

ça permet de convertir la chaine en chaine au format URI (espace = '+', caractères spéciaux codés en ASCII, etc...)


---------------
J'ai un string dans l'array (Paris Hilton)
n°391948
bobuse
Posté le 13-05-2003 à 14:23:41  profilanswer
 

lorill a écrit :


devine  :sarcastic:  
tu fais bien du java non ? URLEncoder, ca te dis qqch ? et vu le contexte, tu peux pas trouver ?
 
ben ca encode les caracteres speciaux, tout connement.


 
ha bah oui, tout betement  :whistle:


---------------
get amaroK plugin
n°391958
benou
Posté le 13-05-2003 à 14:25:16  profilanswer
 

Harkonnen a écrit :

moi j'envoie ça (sur mon bot en asm, sur celui en C# je passe par un stream) :
 
POST http://forum.hardware.fr/bdd.php3 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: (le nombre de caractères des données)
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
 
J'attends la réponse du serveur et j'envoie ensuite les données :
 
pseudo=Harkonnen&password=pass&cat=10&sujet=DaHarkoBot+%3e+Bot+sur+la+rampe+de+lancement+%5b+%3a+yaisse2+%5d&post=36410
 
C'est tout simple


 :heink: pkoi faire ?

n°391966
drasche
Posté le 13-05-2003 à 14:28:38  profilanswer
 

Bon je constate que j'ai jamais fait de threads en VB et qu'en plus j'y connais queudalle donc je vais tenter un truc.  Et je vous prie de ne pas rire, merci :D
 
En fait je commencerais bien par une adaptation du sample livré avec C++ Builder (celui qui affiche 3 piles de barres à trier selon 3 algos différents) [:meganne]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°391967
gm_superst​ar
Appelez-moi Super
Posté le 13-05-2003 à 14:28:53  profilanswer
 

benou a écrit :

:heink: pkoi faire ?


Pour pas faire comme IE.


Message édité par gm_superstar le 13-05-2003 à 14:29:13

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°391969
genesis
Posté le 13-05-2003 à 14:29:52  profilanswer
 

Harkonnen a écrit :

moi j'envoie ça (sur mon bot en asm, sur celui en C# je passe par un stream) :
 
POST http://forum.hardware.fr/bdd.php3 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: (le nombre de caractères des données)
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
 
J'attends la réponse du serveur et j'envoie ensuite les données :
 
pseudo=Harkonnen&password=pass&cat=10&sujet=DaHarkoBot+%3e+Bot+sur+la+rampe+de+lancement+%5b+%3a+yaisse2+%5d&post=36410
 
C'est tout simple


 
effectivement  :D

n°391981
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 14:35:25  profilanswer
 

benou a écrit :


 :heink: pkoi faire ?


pourquoi j'ai marqué ça ? :??:
évidemment, je n'attend pas la réponse du serveur, j'envoie tout d'un bloc. par contre, penser à séparer l'entete des données avec un \n


Message édité par Harkonnen le 13-05-2003 à 14:35:55

---------------
J'ai un string dans l'array (Paris Hilton)
n°391985
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 14:36:59  profilanswer
 

genesis a écrit :


 
effectivement  :D  


c'est pas mon pass hein ;)


---------------
J'ai un string dans l'array (Paris Hilton)
n°391987
mareek
Et de 3 \o/
Posté le 13-05-2003 à 14:37:35  profilanswer
 

drasche a écrit :

Bon je constate que j'ai jamais fait de threads en VB et qu'en plus j'y connais queudalle donc je vais tenter un truc.  Et je vous prie de ne pas rire, merci :D
 
En fait je commencerais bien par une adaptation du sample livré avec C++ Builder (celui qui affiche 3 piles de barres à trier selon 3 algos différents) [:meganne]

on peut faire des threads en VB ? [:xx_xx]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°391995
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 14:40:30  profilanswer
 

J'ai oublié le verifrequet dans ma requete, je reprends :
 
POST http://forum.hardware.fr/bdd.php3 HTTP/1.1  
Content-Type: application/x-www-form-urlencoded  
Content-Length: (le nombre de caractères des données)  
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
 
pseudo=Harkonnen&password=pass&cat=10&sujet=DaHarkoBot+%3e+Bot+sur+la+rampe+de+lancement+%5b+%3a+yaisse2+%5d&post=36410&verifrequet=1100
 


---------------
J'ai un string dans l'array (Paris Hilton)
n°392004
polo021
Posté le 13-05-2003 à 14:44:44  profilanswer
 

c'est quoi ca?

Citation :

http://forum.hardware.fr/bdd.php3 HTTP/1.1  
Content-Type: application/x-www-form-urlencoded  
Content-Length: (le nombre de caractères des données)  
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)


et comment on peut connaitre tous ces parametres quand on commence a programmer son bot? :??:

n°392012
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 14:48:47  profilanswer
 

polo021 a écrit :

c'est quoi ca?

Citation :

http://forum.hardware.fr/bdd.php3 HTTP/1.1  
Content-Type: application/x-www-form-urlencoded  
Content-Length: (le nombre de caractères des données)  
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)




c'est l'entête de la requete POST. faut regarder la RFC 2616 qui décrit le protocole HTTP
 

polo021 a écrit :


et comment on peut connaitre tous ces parametres quand on commence a programmer son bot? :??:  


suffit de regarder le source de la page HTML du formulaire de réponse, c'est une mine d'infos :o


Message édité par Harkonnen le 13-05-2003 à 14:50:15

---------------
J'ai un string dans l'array (Paris Hilton)
n°392015
bobuse
Posté le 13-05-2003 à 14:50:31  profilanswer
 

Harkonnen a écrit :

J'ai oublié le verifrequet dans ma requete, je reprends :
 
POST http://forum.hardware.fr/bdd.php3 HTTP/1.1  
Content-Type: application/x-www-form-urlencoded  
Content-Length: (le nombre de caractères des données)  
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
 
pseudo=Harkonnen&password=pass&cat=10&sujet=DaHarkoBot+%3e+Bot+sur+la+rampe+de+lancement+%5b+%3a+yaisse2+%5d&post=36410&verifrequet=1100
 
 


 
C'est bizarre qu'on soit obligé de preciser le titre du topic :??: , et il sert a quoi le verifrequet ?
 
pour l'instant je fais fait avec une URLConnection, dsl maitre_benou [:spamafote]


---------------
get amaroK plugin
n°392021
gm_superst​ar
Appelez-moi Super
Posté le 13-05-2003 à 14:52:09  profilanswer
 

polo021 a écrit :

c'est quoi ca?
 
et comment on peut connaitre tous ces parametres quand on commence a programmer son bot? :??:


 
Soit tu te paluches le protocle HTTP, soit tu utilises un petit sniffer un peu intelligent histoire de choper les requêtes HTTP bien mises en forme.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°392022
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-05-2003 à 14:52:35  profilanswer
 

bobuse a écrit :

il sert a quoi le verifrequet ?


je sais pas, il est présent dans la page HTML du formulaire de réponse, ça marche pas si on le met pas [:sinclaire]


---------------
J'ai un string dans l'array (Paris Hilton)
n°392025
drasche
Posté le 13-05-2003 à 14:53:54  profilanswer
 

mareek a écrit :

on peut faire des threads en VB ? [:xx_xx]


on peut, mais c'est un peu la croix et la bannière.  En tout cas tu peux pas le faire en dehors d'une DLL ActiveX mais c'est tout ce dont je me rappelle.  Vais voir ce soir si je peux en tirer quelque chose :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°392026
Kristoph
Posté le 13-05-2003 à 14:53:59  profilanswer
 

gm_superstar a *crit :


 
Soit tu te paluches le protocle HTTP, soit tu utilises un petit sniffer un peu intelligent histoire de choper les requ*tes HTTP bien mises en forme.


 
Ou alors tu utilises une lib toute prete qui t'evite ton ces problemes ( cf la version en Python plus haut par exemple )

n°392030
gm_superst​ar
Appelez-moi Super
Posté le 13-05-2003 à 14:56:01  profilanswer
 

Kristoph a écrit :

Ou alors tu utilises une lib toute prete qui t'evite ton ces problemes ( cf la version en Python plus haut par exemple )


Exact, mais vu qu'ici il y a des warriors qui font ça en ASM il faut détailler un peu :D


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°392043
bobuse
Posté le 13-05-2003 à 15:02:26  profilanswer
 

bon alors, de mon cote, j'avance un peu ...
 
Premiere conclusion : un bot doit avoir deux URLConnection de connectées (je suppose que ca revient a deux sockets connectées), une pour poster (bdd.php3) et l'autre pour lire (message.php3).
 
Me trompes-je ? :)


---------------
get amaroK plugin
n°392053
polo021
Posté le 13-05-2003 à 15:07:09  profilanswer
 

une socket par thread non? comme ca on melange pas tout.

n°392060
kadreg
profil: Utilisateur
Posté le 13-05-2003 à 15:08:47  profilanswer
 

Je vais modifier le bot pour qu'il surveille plusieurs threads en // pour premser partout dans le forum.
 
Le tout se configurant via un fichier XML bien sur  :jap:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7

Aller à :
Ajouter une réponse
 

Sujets relatifs
[ Cherche langage de programmation ] + question PHP --> EXE ?programmation debutant
programmation Pocket PC en C++[projet] Quel langage de programmation utiliser ? (active directory...
Programmation d'un événementProgrammation openGL
programmation HPVEE ...Programmation ASM sur Windows ?
[O Caml] Programmation d'un interpréteur - pb de syntaxeProgrammation GTK Linux , problème de #include
Plus de sujets relatifs à : Les bots : programmation, pièges, principes, etc....


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