begin process at 2012 02 10 18:53:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > GENERATEUR DE SOCKET

GENERATEUR DE SOCKET


 Information sur la source

Note :
8,9 / 10 - par 10 personnes
8,90 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :socket, sockopen, sockread Niveau :Débutant Date de création :02/10/2005 Vu :5 162

Auteur : fjxokt

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
comme c'est écrit dans le titre, cette petite source permet de "generer" un socket
Il suffit d'entrer les differentes informations, puis il est possible de tester le socket pour voir s'il fonctionne, de voir les sources de la pages (pour pouvoir par la suite filtrer les informations utiles)
Enfin, un fichier mrc est generé, permettant la connexion au socket entré
Il ne vous reste plus qu'a completer le sockread a votre convenance pour récuperer les infos qui vous interressent

Bon ce code n'a rien de compliqué, il peut être pratique, surtout pour les débutants en socket, ou peut être même pour les flemards, qui sait ;-)

Source

  • ;SocketGen v1
  • ;fjxokt@gmail.com
  • dialog socko {
  • title "SocketGen v1"
  • size -1 -1 174 176
  • option dbu
  • text "Rentrez la page du site sur lequel vous voulez vous connecter :", 1, 6 4 162 8
  • edit "", 2, 6 13 122 11, autohs
  • text "Protocole :", 3, 7 29 28 8, right
  • combo 4, 37 27 55 30, size drop
  • button "Tester", 5, 10 142 28 12
  • button "Fermer", 6, 72 161 37 13
  • text "Variable :", 7, 10 43 25 8, right
  • combo 8, 37 41 55 30, size drop
  • list 9, 9 65 155 75, size
  • box "Informations ", 10, 3 55 167 103
  • button "Générer le code !", 11, 113 142 50 12, multi
  • button "Effacer", 12, 41 142 28 12
  • text "Port :", 13, 131 15 15 8
  • edit "80", 14, 147 13 23 11, limit 5 center
  • text "Nom de la var :", 15, 101 43 39 8
  • edit "a", 16, 141 41 29 11, center
  • button "Sources", 17, 72 142 28 12
  • }
  • on *:dialog:socko:*:*:{
  • if ($devent == init) { didtok $dname 4 32 HTTP/1.0 HTTP/1.1 | didtok $dname 8 32 &binvar % $+ variable }
  • elseif ($devent == sclick) {
  • if ($did == 5) {
  • if (!$sock(st)) {
  • if ((!$did(2)) || (!$did(4)) || (!$did(8)) || (!$did(14)) || (!$did(16))) halt
  • sock_b
  • set %sock_site $iif(http isin $did(2),$gettok($did(2),2,47),$gettok($v2,1,47))
  • set %sock_link / $+ $iif(http isin $did(2),$gettok($did(2),3-,47),$gettok($did(2),2-,47))
  • set %sock_port $did(14)
  • if ($exists(testsock.html)) .remove testsock.html
  • sockclose st | sockopen st %sock_site %sock_port
  • if ($did(9).lines) did -a $dname 9 $str(-,30) | did -a $dname 9 $t Connexion a %sock_site en cours...
  • }
  • else { sock_b | sock_quit | did -a $dname 9 $t Connexion annulée ! }
  • }
  • elseif ($did == 12) did -r $dname 9
  • elseif ($did == 11) {
  • if ((!$did(2)) || (!$did(4)) || (!$did(8)) || (!$did(14)) || (!$did(16))) halt
  • else sock_generate
  • }
  • elseif ($did == 6) { dialog -x $dname | sock_quit }
  • elseif ($did == 17) sock_win
  • }
  • elseif ($devent == close) sock_quit
  • }
  • on *:sockopen:st:{
  • if ($sockerr) { did -a socko 9 $t Connexion impossible | sock_b | halt }
  • else did -a socko 9 $t Connexion établie
  • if ($did(socko,4) == HTTP/1.1) { sockwrite -n st GET %sock_link HTTP/1.1 | sockwrite -n st Host: %sock_site $+ $str($crlf ,2) | sockwrite -n st User-Agent: Mozilla/5.O }
  • else { sockwrite -n st GET %sock_site HTTP/1.0 | sockwrite -n st $crlf }
  • }
  • on *:sockread:st:{
  • sockread %a
  • sockread &a | bwrite testsock.html -1 -1 &a
  • if (HTTP isin $g(%a,1) && $g(%a,2-) == 400 Bad Request) { did -a socko 9 $t Erreur de protocole ( Erreur: $v2 ) | sock_err }
  • elseif (HTTP isin $g(%a,1) && $g(%a,2-) == 302 Found) { did -a socko 9 $t Document déplacé ou inconnu ( Erreur: $v2 ) | sock_err }
  • elseif (HTTP isin $g(%a,1) && $g(%a,2) == 404) { did -a socko 9 $t Page non trouvée ( Erreur: $v2 ) | sock_err }
  • elseif (HTTP isin $g(%a,1) && $g(%a,2) isnum 400-505) { did -a socko 9 $t Erreur: $g(%a,2- ) }
  • elseif (Réception des données !isin $did(socko,9,$did(socko,9).lines)) did -a socko 9 $t $v1
  • unset %a
  • }
  • on *:sockclose:st:{ did -a socko 9 $t Données reçues | did -a socko 9 $t Connexion refermée | sock_b }
  • alias -l sock_generate {
  • var %sn $replace($$input(Rentrez le nom que portera le socket :,ioce,Nom du socket),$chr(32),_),%f socket_ $+ [ %sn ] $+ .mrc
  • if ($exists(%f)) { if (!$input(Le fichier %f existe déja ! $crlf Voulez vous l'effacer ?,iy,Fichier déja existant)) halt }
  • var %o $chr(123),%c $chr(125),%s $chr(124)
  • .fopen -o f %f
  • .fwrite f ; $+ socket généré par SocketGen $crlf $+ ; $+ pour tester le socket, chargez ce fichier ou copiez le contenu dans un nouveau remote mIRC, puis tapez /socket_ $+ [ %sn ] $crlf $crlf
  • .fwrite f alias socket_ $+ [ %sn ] %o sockclose %sn %s sockopen %sn %sock_site %sock_port %c $crlf $crlf
  • .fwrite f on *:sockopen: $+ [ %sn ] $+ : %o $crlf if ($ $+ sockerr) %o echo -a Erreur de connexion au socket $ $+ sockname %s halt %c $crlf else %o $crlf sockwrite -n %sn GET %sock_link $did(socko,4) $crlf
  • if (1.1 isin $did(4)) var %prot sockwrite -n %sn Host: %sock_site $ $+ + $ $+ str($ $+ crlf ,2)
  • else var %prot sockwrite -n %sn $ $+ crlf
  • var %v $left($did(socko,8),1),%n $did(socko,16)
  • .fwrite f %prot $crlf sockwrite -n %sn User-Agent: Mozilla/5.0 $crlf %c $crlf $+ %c $crlf $crlf $+ on *:sockread: $+ [ %sn ] $+ : %o $crlf sockread %v $+ %n $crlf $iif(%v == %,echo -a % $+ %n) $crlf $iif(%v == %,unset,bunset) $v1 $+ %n $crlf $+ %c $crlf $crlf
  • .fwrite f on *:sockclose: $+ [ %sn ] $+ : %o echo -a Socket $ $+ sockname refermé %c
  • .fclose f
  • $iif($input(Génération effectuée ! $crlf Le fichier %f a été crée dans le dossier : $+(",$scriptdir,") $crlf Voulez-vous l'ouvrir ?,iy,Opération terminée),run %f)
  • }
  • alias socko dialog $iif($dialog(socko),-v,-m) socko socko
  • alias -l sock_win { if ($exists(testsock.html)) { window -b @data 150 150 | clear -@ @data | loadbuf @data testsock.html } }
  • alias -l sock_err { sockclose st | did -a socko 9 $t Déconnexion du socket | sock_b }
  • alias -l sock_quit { sockclose st | unset %sock_* | if ($exists(testsock.html)) .remove testsock.html | if ($window(@data)) window -c $v1 }
  • alias -l sock_b { did -ra socko 5 $iif($did(socko,5) == Tester,Stopper,Tester) }
  • alias -l g return $gettok($1,$2,32)
  • alias -l t return $+([,$time,])
;SocketGen v1
;fjxokt@gmail.com

dialog socko {
  title "SocketGen v1"
  size -1 -1 174 176
  option dbu
  text "Rentrez la page du site sur lequel vous voulez vous connecter :", 1, 6 4 162 8
  edit "", 2, 6 13 122 11, autohs
  text "Protocole :", 3, 7 29 28 8, right
  combo 4, 37 27 55 30, size drop
  button "Tester", 5, 10 142 28 12
  button "Fermer", 6, 72 161 37 13
  text "Variable :", 7, 10 43 25 8, right
  combo 8, 37 41 55 30, size drop
  list 9, 9 65 155 75, size
  box "Informations ", 10, 3 55 167 103
  button "Générer le code !", 11, 113 142 50 12, multi
  button "Effacer", 12, 41 142 28 12
  text "Port :", 13, 131 15 15 8
  edit "80", 14, 147 13 23 11, limit 5 center
  text "Nom de la var :", 15, 101 43 39 8
  edit "a", 16, 141 41 29 11, center
  button "Sources", 17, 72 142 28 12
}

on *:dialog:socko:*:*:{
  if ($devent == init) { didtok $dname 4 32 HTTP/1.0 HTTP/1.1 | didtok $dname 8 32 &binvar % $+ variable }
  elseif ($devent == sclick) {
    if ($did == 5) {
      if (!$sock(st)) {
        if ((!$did(2)) || (!$did(4)) || (!$did(8)) || (!$did(14)) || (!$did(16))) halt
        sock_b
        set %sock_site $iif(http isin $did(2),$gettok($did(2),2,47),$gettok($v2,1,47))
        set %sock_link / $+ $iif(http isin $did(2),$gettok($did(2),3-,47),$gettok($did(2),2-,47))
        set %sock_port $did(14)
        if ($exists(testsock.html)) .remove testsock.html
        sockclose st | sockopen st %sock_site %sock_port
        if ($did(9).lines) did -a $dname 9 $str(-,30) | did -a $dname 9 $t Connexion a %sock_site en cours...
      }
      else { sock_b | sock_quit | did -a $dname 9 $t Connexion annulée ! }
    }
    elseif ($did == 12) did -r $dname 9
    elseif ($did == 11) {
      if ((!$did(2)) || (!$did(4)) || (!$did(8)) || (!$did(14)) || (!$did(16))) halt
      else sock_generate
    }
    elseif ($did == 6) { dialog -x $dname | sock_quit }
    elseif ($did == 17) sock_win
  }
  elseif ($devent == close) sock_quit
}


on *:sockopen:st:{
  if ($sockerr) { did -a socko 9 $t Connexion impossible | sock_b | halt }
  else did -a socko 9 $t Connexion établie
  if ($did(socko,4) == HTTP/1.1) { sockwrite -n st GET %sock_link HTTP/1.1 | sockwrite -n st Host: %sock_site $+ $str($crlf ,2) | sockwrite -n st User-Agent: Mozilla/5.O }
  else { sockwrite -n st GET %sock_site HTTP/1.0 | sockwrite -n st $crlf }
}

on *:sockread:st:{
  sockread %a
  sockread &a | bwrite testsock.html -1 -1 &a
  if (HTTP isin $g(%a,1) && $g(%a,2-) == 400 Bad Request) { did -a socko 9 $t Erreur de protocole ( Erreur: $v2 ) | sock_err }
  elseif (HTTP isin $g(%a,1) && $g(%a,2-) == 302 Found) { did -a socko 9 $t Document déplacé ou inconnu ( Erreur: $v2 ) | sock_err }
  elseif (HTTP isin $g(%a,1) && $g(%a,2) == 404) { did -a socko 9 $t Page non trouvée ( Erreur: $v2 ) | sock_err }
  elseif (HTTP isin $g(%a,1) && $g(%a,2) isnum 400-505) { did -a socko 9 $t Erreur: $g(%a,2- ) }
  elseif (Réception des données !isin $did(socko,9,$did(socko,9).lines)) did -a socko 9 $t $v1
  unset %a
}

on *:sockclose:st:{ did -a socko 9 $t Données reçues | did -a socko 9 $t Connexion refermée | sock_b }


alias -l sock_generate {
  var %sn $replace($$input(Rentrez le nom que portera le socket :,ioce,Nom du socket),$chr(32),_),%f socket_ $+ [ %sn ] $+ .mrc
  if ($exists(%f)) { if (!$input(Le fichier %f existe déja ! $crlf Voulez vous l'effacer ?,iy,Fichier déja existant)) halt }
  var %o $chr(123),%c $chr(125),%s $chr(124)
  .fopen -o f %f
  .fwrite f ; $+ socket généré par SocketGen $crlf $+ ; $+ pour tester le socket, chargez ce fichier ou copiez le contenu dans un nouveau remote mIRC, puis tapez /socket_ $+ [ %sn ] $crlf $crlf
  .fwrite f alias socket_ $+ [ %sn ] %o sockclose %sn %s sockopen %sn %sock_site %sock_port %c $crlf $crlf
  .fwrite f on *:sockopen: $+ [ %sn ] $+ : %o $crlf if ($ $+ sockerr) %o echo -a Erreur de connexion au socket $ $+ sockname %s halt %c $crlf else %o $crlf sockwrite -n %sn GET %sock_link $did(socko,4) $crlf
  if (1.1 isin $did(4)) var %prot sockwrite -n %sn Host: %sock_site $ $+  + $ $+ str($ $+ crlf ,2)
  else var %prot sockwrite -n %sn $ $+ crlf
  var %v $left($did(socko,8),1),%n $did(socko,16)
  .fwrite f %prot $crlf sockwrite -n %sn User-Agent: Mozilla/5.0 $crlf %c $crlf  $+ %c $crlf $crlf $+ on *:sockread: $+ [ %sn ] $+ : %o $crlf sockread %v $+ %n $crlf $iif(%v == %,echo -a % $+ %n)  $crlf $iif(%v == %,unset,bunset) $v1 $+ %n $crlf $+ %c $crlf $crlf
  .fwrite f on *:sockclose: $+ [ %sn ] $+ : %o echo -a Socket $ $+ sockname refermé %c
  .fclose f
  $iif($input(Génération effectuée ! $crlf Le fichier %f a été crée dans le dossier : $+(",$scriptdir,") $crlf Voulez-vous l'ouvrir ?,iy,Opération terminée),run %f)
}
alias socko dialog $iif($dialog(socko),-v,-m) socko socko
alias -l sock_win { if ($exists(testsock.html)) { window -b @data 150 150 | clear -@ @data | loadbuf @data testsock.html } }
alias -l sock_err { sockclose st | did -a socko 9 $t Déconnexion du socket | sock_b }
alias -l sock_quit { sockclose st | unset %sock_* | if ($exists(testsock.html)) .remove testsock.html | if ($window(@data)) window -c $v1 }
alias -l sock_b { did -ra socko 5 $iif($did(socko,5) == Tester,Stopper,Tester) }
alias -l g return $gettok($1,$2,32)
alias -l t return $+([,$time,])

 Conclusion

Si vous trouvez des bugs ou si vous avez des commentaires/suggestions, n'hesitez pas !
(Je pense que ce code n'est qu'un début...)


 Sources du même auteur

Source avec Zip Source avec une capture ALGORITHME A*
Source avec Zip Source avec une capture IMAGESHACK UPLOADER V0.1 ALPHA
Source avec Zip Source avec une capture AUTO COMPLÉTION V1
Source avec Zip CREATION DE TABLEAUX ALPHA
Source avec Zip Source avec une capture STEGBMP (STEGANOGRAPHIE)

 Sources de la même categorie

Source avec une capture QUOTES BASH ET BASHFR par Flyswat
Source avec Zip Source avec une capture FIREWALL par Bestdoud
ASPIRATEUR DE GALERIES INTERNET par PaDa
Source avec Zip MSN MESSENGER SUR IRC SCRIPT POUR COMPRENDRE LE FONCTIONEMEN... par synsun
Source avec Zip Source avec une capture PROGRAMME TV (PICWIN) par AgoRa_ScripT

 Sources en rapport avec celle ci

Source avec une capture TORRENT VIEWER par kamikaze97441
SERVEUR FTP par hisoka2501
TELECHARGEMENT DE FICHIER PAR PROTOCOLE HTTP 1.0 VIA SOCKET par hisoka2501
Source avec Zip Source avec une capture FIREWALL par Bestdoud
Source avec Zip Source avec une capture DERNIERES SOURCES DU RESEAU CS par fjxokt

Commentaires et avis

Commentaire de PaDa le 02/10/2005 22:49:27

cute !
j'ai pas testé, de ce que j'ai lu tu écris les remotes a la volée ca m'a l'air intéressant.. bien que le file handling pour écrire si peu de données c'est du vice :p
ca m'a l'air top bien codé, j'teste un d'ces 4...

Commentaire de VestaX le 03/10/2005 10:59:07

houais, pas mal, mais je ne vois ps vraiment l'utilité. Et je n'ai jamais compris pourquoi les scripteurs utilisent le HTTP/1.1 qui est strictement innutile, moi perso, j'utilise juste un GET url direct, et ca marche aussi bien.

Par contre ta source, tu peux ennormement l'optimiser, je peux te faire la même, avec 50 lignes en mois.

7/10

Commentaire de PaDa le 03/10/2005 11:11:30

J'adore ce genre de trolls, 48 lignes, le défi est lancé VestaX :)

Commentaire de YoxiGen le 03/10/2005 11:43:29

Ca ne marche pas chez moi. Peut etre une version de mIRC trop ancienne ? (6.03)
Sinon l idée est bonne, bravo

Commentaire de PaDa le 03/10/2005 11:49:24

yep
mIRC 6.03 ne supporte pas le file handling (tu dois avoir une erreur sur * /fopen commande invalide)
prends du 6.12+

Commentaire de VestaX le 03/10/2005 14:28:02

pas aussi complet, mais 30 lignes de code à tout casser en 10 minutes :)


alias gensock { dialog -m gensock gensock }
dialog gensock {
  title "Generateur de sockets"
  size -1 -1 157 119
  option dbu
  box "URL", 1, 2 1 154 22
  edit "", 2, 5 10 104 10, autohs
  box "Etat", 3, 2 25 154 80
  list 4, 5 33 148 69, size
  button "Lancer", 5, 2 107 37 10
  button "Fermer", 6, 118 107 37 10, ok
  text "Port:", 7, 112 11 14 8
  edit "", 8, 127 10 26 10, autohs
}
on *:dialog:gensock:sclick:5:{
  var %a = $remove($replace($did(2),$chr(32),$+($chr(37),20)),http://)
  var %a = $gettok(%a,1,47)
  set %sock_site %a
  sockopen gensock %sock_site $did(gensock,8)
}
on *:sockopen:gensock:{ did -ra gensock 4 $chr(91) $+ $time(HH) $+ : $+ $time(nn) $+ $chr(93) Connexion en cours... | sockwrite -n gensock GET $did(gensock,2) }
on *:sockread:gensock:{
  if ($sockerr) { sockclose gensock | var %0 $input(Connexion impossible!! erreur de sockets,524,Information) | halt }
  sockread &a
  did -ra gensock 4 $chr(91) $+ $time(HH) $+ : $+ $time(nn) $+ $chr(93) connexion effectuée sur le site %sock_site
  did -a gensock 4 $chr(91) $+ $time(HH) $+ : $+ $time(nn) $+ $chr(93) fermeture du socket.
}

comme quoi, peux mieux faire :)

Commentaire de PaDa le 03/10/2005 14:39:50

le résultat est légèrement pas le même.. ou est le .html ? ou est la gestion des pages d'erreurs ? ou est la possibilité d'écrire un remote spécifique que tu peux garder ensuite ? ou est l'affichage du résultat dans une @win ?

moi, j'te refais le dialogue de conf mirc en 1 ligne !
alias troll .comopen alt WScript.Shell | .echo -q $com(alt,Sendkeys,3,bstr,% $+ (o)) | .comclose alt

no comment, je suis taquin :p

Commentaire de fjxokt le 03/10/2005 16:43:13

>YoxiGen vraiment désolé j'avais oublié de préciser mirc 6.12+ :/

Sinon vestax, j'ai pas l'impression que tu as compris l'utilité de cette source
Cette sources est REELEMENT pour les débutants et a un but didactique, tant mieux si toi tu comprends tout, mais tout le monde ne gère pas les sockets aussi bien que toi (certains se demandent pourquoi ils ne reçoivent rien, ou des erreurs 400 / 404 en particulier etc...)
ce code est en fait un espece de "tutorial" (bon sans les comment' c'est vrai :/)
sinon je ne ne ferais pas de commentaires sur le "je peux te faire la même, avec 50 lignes en moins"

dernier chose, si tu ne comprends pas l'utilisation du protocole http/1.1 , je te conseille de te renseigner un peu mieux sur le sujet... (d'ailleur tu ne respecte absolument pas le protocole dans tes sockets )


a bon entendeur :)

Commentaire de VestaX le 03/10/2005 18:59:59

ben peux etre que le protocole exacte n'est pas le bon, mais le resultat est le même :)

Mais j'ai bien dit dans mon comment: "pas aussi complet, mais 30 lignes de code à tout casser en 10 minutes :)"

par contre pour tutorial, je ne vois pas ou c'est un tutorial. A aucun endroit tu as marqué à quoi servent tes commandes. Si c'est un addon c'est une chose, si c'est un tutorial, ca en est une autre :)

Commentaire de AgoRa_ScripT le 09/10/2005 20:57:33

C'est exactement ce qu'il me fallait.

Commentaire de HySteriK le 13/11/2005 18:08:40

plop rien à dire enfin presque
good source  !

Commentaire de neobidou le 17/06/2006 00:33:04

L'idée est très bonne mais la génération du code ne fonctionne paspour ma part, donc à revoir.

Commentaire de ExtenZ93 le 20/07/2007 18:47:49

Je ne sais pas comment executé ce code ? c'est ou que j'accede a ce qu'il y a marker dans DIALOG ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Aidez-moi svp [ par Allan007 ] Bonjour tout le monde, voilà j'ai un petit problème......Je n'arrive pas a me connecter sur mon site lycos avec des socksVoici la command que j'ai fai Socket basique ( dur pour moi :'( ) [ par Dabouille ] Voila j'essaye d'apprendre les sockets mais la je desespere tout seul a 5h du matin :'(Si quelqu'un voit des erreux peut il me le signaler?merci bcpal Socket anti-flood [ par michaeldu03 ] Bonjour a tous Je viens de me mettre au socket et la je bloque je cherche un moyen de faire un anti-flood par socket et un anti-spam mais je bloque je Aide pour socket [ par KaLViN2 ] Bonjour : )Mettant mis depuis quelques temps aux sockets je me trouve bloqué par un truc surement idiot mais je n'ai rien vu dans l'aide pour m'a socket [ par mr_orus1 ] Hello, voilà, j'essaie de recuperer des infos precise sur un site via socket.J'ai réussi a bidouillé un code qui fonctionne aujourd'hui, en fait je "t connection socket via proxy [ par ISoKa ] Bonjour :) Voila en faite depuis quelques temps j'essai de m'amuser à scripter un peu des ptis bot par socket pour voir un peu ce que ca donne, et com Prboleme BNC & DCC [ par El_CaNaRdO ] Bonjour :) Probleme avec mon bnc. D'un jour a l'autre, il s'est mis a me flooder en pv : [14:03:55] <-psyBNC> Thu Aug 3 14:02:59 :Unknown DCC f socket [ par spider9999 ] je cherche a enregistrer le nick avec un quizz de type socket j'ai tenté cette commandes mais sans succes et je ne vois pas mon erreur !!!! : sockwrit Problème d'Alias dans des sockets [ par ckemoua ] Coucou, Je viens vous voir car je découvre les Sockets et je bloque sur un petit problème. Y'a t'il un moyen de fair lancer un Alias (Crée par moi) au Se connecter sur un compte avec un socket [ par Corween ] Bonjour,Je viens de faire une recherche sur le forum et dans les tuto's, pour trouver comment se connecter à un compte sur internet en passant par un


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales