Whois problème $comchan

itzelien Messages postés 21 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 30 juillet 2008 - 11 nov. 2006 à 16:43
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009 - 18 nov. 2006 à 12:56
Salut,

Après inspiration sur plusieurs whois , j'ai crée ceci:

raw 311:*: {
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6�2; Whois�2; �3;7<�3;4-�3;12-
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Pseudo:�3; $2
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Ident:�3; $3
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Realname:�3; $6-
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Host:�3; $3 $+ @ $+ $4
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Nombre de Channels en commun:�3; $comchan($2,0)
  var %i = 1
  while (%i = $comchan($2,0)) {
    var %chans-com = %chans-com $comchan($2,%i)
  inc %i }
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Channels en commun:�3; %chans-com
  halt
}


raw 307:*: {
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Status:�3; Pseudo Protégé
  halt
}
raw 301:*: {
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Etat:�3; Indisponible �3;6 Motif:�3; $3-
  halt
}
raw 317:*:{
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Connecté depuis:�F; $duration($calc($ctime - $4))
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Inactivé : �F; $duration($3)
  halt
}
raw 318:*:{
  echo -a $timestamp  �3;12-�3;4-�3;7> �3;6 �2;/Whois�2; �3;7<�3;4-�3;12-
  halt
}


raw 319:*: haltdef
raw 312:*: haltdef

Le petit soucis est que les channels que j'ai en commun avec quelqu'un ne s'affichent pas.
Je vous remercie de votre coups de main qui me sera très utile.

Itzelien
A voir également:

7 réponses

RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
11 nov. 2006 à 17:08
echo -a $timestamp devient :
echo -at (c'est quand même bien plus joli et court !)

ta première boucle se fait plutôt comme ceci :while ($comchan($2,%i)) var %chans-com $addtok(%chans-com,$ifmatch,32), %i %i + 1

ça devrait marcher ^^

c/c ce qu'il t'est affiché sinon
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
11 nov. 2006 à 17:57
Et le soucis s'explique par le fait que $2 retourne bien le pseudo de la personne dans la raw 311 donc le résultat du $comchan($2,0) est juste seulement la raw 311n'est pas utilisé pour accédé au salon commun avec la personne
c'est pour cela qu'en utilisant ton code et en me whoisant j'ai reussis ca :

[17:20:30] -->  Whois <--
[17:20:30] -->  Pseudo: Wims
[17:20:30] -->  Ident: ~Wims
[17:20:30] -->  Realname: Wims
[17:20:30] -->  Host: ~Wims@EpiK-B57B636E.fbx.proxad.net
[17:20:30] -->  Nombre de Channels en commun: 2
[17:20:30] -->  Channels en commun:
Wims is connecting from *@ter75-2-82-225-250-43.fbx.proxad.net 82.225.250.43
[17:20:30] -->  Status: Pseudo Protégé
[17:20:30] -->  Connecté depuis: 6hrs 12mins 11secs
[17:20:30] -->  Inactivé :  1hr 36mins 32secs
[17:20:30] -->  /Whois <--

Donc la raw 311 devient :
raw 311:*: {
raw 311:*: {
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6�2; Whois�2; �3;7<�3;4-�3;12-
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Pseudo:�3; $2
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Ident:�3; $3
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Realname:�3; $6-
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Host:�3; $3 $+ @ $+ $4
}

Il faut ensuite enlevé le haltdef de la raw 319
et y récupéré les salons ou est présent le pseudo et mettre la boucle juste apres  :
raw 319:*:{
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Salon : $remove($3-,+,@,%,~,&)
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Nombre de Channels en commun:�3; $comchan($2,0)  var %a 1 ,%b $comchan($2,0)  while (%a %b) { var %c %c $comchan($2,%i) | inc %i }
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Channels en commun:�F;%c
}

Il te manque aussi la raw 378 pour affiché notre vrai host , non cryptée :

raw 378:*:echo -a $timestamp  �3;12-�3;4-�3;7> �3;6 Host réele : $remove($6-,*) | halt   

 
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
11 nov. 2006 à 19:30
Petite rectification par Arkanis : la raw 319 ne se déclenche pas forcément sur tout les whois donc laisse la boucle dans la 311 :
var %a 1 ,%b $comchan($2,0) ,%c 0  while (%a %b) { var %c %c $comchan($2,%i) | inc %i }
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Channels en commun:�F; %c
  echo -a $timestamp �3;12-�3;4-�3;7> �3;6 Nombre de Channels en commun:�3; $comchan($2,0)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
11 nov. 2006 à 19:47
ta boucle est vraiment bizarre ...
prends plutôt celle-ci :
var %i = 1while ($comchan($2,%i)) var %c $addtok(%c,$ifmatch,32), %i %i + 1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
11 nov. 2006 à 19:50
j'ai oublier le sign < dans la boucle ainsi que deux %i qui sont en fait des %a
0
itzelien Messages postés 21 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 30 juillet 2008
12 nov. 2006 à 20:53
Bon voilà,

J'en suis arrivé là grace à vous:

raw 301:*:{ echo -at �2;Etat:�2; Indisponible �2;Motif:�2; $3- | halt }
raw 307:*:{ echo -at �2;Status:�2; Pseudo Protégé | halt }
raw 310:*:{ echo -at �2;Helpeur:�2; Oui | halt }
raw 311:*:{
  echo -at �2; --- WHOIS ---�2;
  echo -at �2;Pseudo:�2; $2
  echo -at �2;Ident:�2; $3
  echo -at �2;Realname�2;: $6-
  echo -at �2;Host:�2; $3 $+ @ $+ $4
  echo -at �2;Nombre de Channels en commun:�2; $comchan($2,0)
  var %i = 1
  while ($comchan($2,%i))  {  var %c $addtok(%c,$ifmatch,32), %i %i + 1 }
  echo -at �2;Channels en commun:�2; %c
  halt
}
raw 312:*:{ echo -at �2;Server:�2; $3- | halt }
raw 313:*:{ echo -at �2; $2 est:�2; $5- | halt }
raw 317:*:{
  echo -at �2;Connecté depuis:�2; $duration($calc($ctime - $4))
  var %t = $replacecs($asctime($4) ,Mon,Lun,Tue,Mar,Wed,Mer,Thu,Jeu,Fri,Ven,Sat,Sam,Sun,Dim,Feb,Fev,Apr,Avr,Mei,Mai,Jun,Juin,Jul,Juil,Aug,Août) 
 var %date = $gettok( %t , 1, 32 ) $gettok( %t , 3, 32 ) $gettok( %t , 2, 32 ) $gettok( %t , 5, 32 ) $gettok( %t , 4, 32 )
  echo -at �2;Connecté le:�2; %date
  echo -at �2;Inactivé:�2;  $duration($3)
  halt
}
raw 318:*:{ echo -at �2;--- /WHOIS ---�2; | halt }
raw 319:*:{ echo -at �2;Mes Salons:�2; $3- | halt }
raw 335:*:{ echo -at �2;Mode de $2:�2; Bot d'Europnet | halt }
raw 378:*:{ echo -at �2;Mon ip est:�2; $ip | halt }
raw 401:*:{ echo -at �2; $2 :�2; n'est pas sur le chat. | halt }
raw 671:*:{ echo -at �2; $2 :�2; utilise une connexion SSL | halt }

Ca fonctionne très bien , j'ai peut etre oublié une ou deux raw mais c'est pas grave.
Voici ce que ça donne
(20:41:19)  --- WHOIS ---
(20:41:19) Pseudo: Itzelien
(20:41:19) Ident: Itzelien
(20:41:19) Realname: Itzelien
(20:41:19) Host:  [mailto:Itzelien@Design.Addict Itzelien@Design.Addict]
(20:41:19) Nombre de Channels en commun: 2
(20:41:19) Channels en commun: #central #mirc
(20:41:19) Status: Pseudo Protégé
(20:41:19) Mes Salons: @#central @#mirc
(20:41:19) Server: key.librenet.europnet.org The-Key - Librenet - EuropNet.org
(20:40:27) Etat: Indisponible Motif: Je ne suis pas là
(20:40:27) Mode de Itzelien: Bot d'Europnet
(20:41:19) Itzelien est: IRC Operator
(20:41:19) Helpeur: Oui
(20:41:19) Itzelien : utilise une connexion SSL
(20:41:19) Connecté depuis: 2days 1hr 21mins 7secs
(20:41:19) Connecté le: Ven 10 Nov 2006 19:20:12
(20:41:19) Inactivé: 1hr 41mins 46secs
(20:41:19) --- /WHOIS ---

Le seule petit truc de rien du tout pour fignoler serait de mettre le "Days" en français , je vais rechercher ça.

Bon voilà , je vous remercie à tous les deux de votre aide :)
A bientôt !  ;)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
18 nov. 2006 à 12:56
echo -at �2;Connecté depuis:�2; $regsubex($duration($calc($ctime - $4)),/(wk|day|hr|min|sec)/ig,$gettok(semaine jour heure minute seconde,$findtok(wk day hr min sec,\t,32),32))

ça devrait marcher
0
Rejoignez-nous