Détection du host caché
#16
Question bête: le tcl est-il chargé ?
Que donne ".binds join" en party-line ?
Répondre
#17
bonjour CrazyCat

oui le tcl et bien chargé et je n'est aucune erreur en pl .en pl je vois bien le join de l'user mais le bot ne fait aucune action . parcontre si je tape .xwhois pseudo et qu'il y est le mauvaise host là il va exécute les cmds. j'suis perdu là mdrr
Citation :|17:28:06| <BoX-Nantes> TYPE FLGS COMMAND HITS BINDING (TCL)
|17:28:06| <BoX-Nantes> join -|- * * 35 autoop
|17:28:06| <BoX-Nantes> join -|- #Nantes * 10 whois:join
Répondre Avertir
#18
Peux-tu joindre ton tcl tel qu'il est (sans remplacer la moindre valeur) s'il te plait ?
Répondre
#19
biensur .
tcl
#-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-#
###--------------Anti-Spam Bot Orange-----------###
#-------------------------DnS---------------------#
# Remerciement à BdS et CrazyCat pour leur aides  #
#-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-#

#-//-//-//-//-#
#   VersiOn   #
#-//-//-//-//-#
 
set versionb "EpsilOn.tcl"

# Configuration du host,Salon message de kick 
set salonm "#InfO-bOt"
set chanm "#Nantes"
set spamhost "2531986971.fr"      
set kick(spambot) "\002\[Systéme AntiSpam]\2  AntiSpam Bot!!!"

#-//-//-//-#
#---Bind---#
#-//-//-//-#
 
bind join - "$chanm *" whois:join
bind raw - 328 whois:answ

#-//-//-//-//-#
#  PROCEDURE  #
#-//-//-//-//-#
 
proc whois:join { nick host hand chan } {
  putserv "WHOIS $nick"
}
 
proc whois:answ {from kw text} {
   set nick [lindex $text 1]
   set userhost [lindex $text 7]
   if { [string first $::spamhost $userhost] != -1} {
      putquick "KICK $::chanm $nick :$::kick(spambot)"
	  putquick "MODE $::chanm +b $userhost"
    putserv "PRIVMSG $::salonm :Alerte ! SpambOt détécté sous le pseudo: $nick  Host: $userhost "
   }
   return 0
}
putlog "$::versionb AntiSpambOt"


Répondre Avertir
#20
Vu ce que les précédents messages, le join est bien pris en compte (tu peux ajouter un putlog dans la procédure whois:join pour vérifier).

Je pense que c'est le raw qui n'est pas bon: 328 est (officiellement) le retour de ChanServ lorsqu'on rejoint un canal enregistré (celui qui donne l'url correspondante).

Les retours de /whois sont les raws suivants:
Citation :301 nick :away
310 nick :looks very helpful
311 nick username address * :info
312 nick server :info
313 nick :is an IRC Operator
317 nick seconds signon :info
318 request :End of /WHOIS list.
319 nick :channels
431 :No nickname given
Répondre
#21
j'ai mit un putlog voici ce que j'ai :
Citation :|18:10:15| <BoX-Nantes> [18:10] PeTiTLu (127HNantes@3569517.eu) left #Nantes.
|18:10:16| <BoX-Nantes> [18:10] whois PeTiTLu effectué
|18:10:16| <BoX-Nantes> [18:10] PeTiTLu (127HNantes@3569517.eu) joined #Nantes.
Répondre Avertir
#22
Heu ? Très bizarre cette affaire là.
Bon, déjà on voit qu'il passe dans la procédure de whois, tu as donc (aussi) un souci sur le raw pour lancer whois:answ.

Au cas où, il y a un truc aussi qui me passe par la tête: est-ce que ton egg n'ignorerait pas les messages serveur. Ca m'est arrivé de voir les serveurs ignorés parce qu'ils étaient considérés comme floodeurs lorsque le bot se connecte (MOTD trop long)

D'ailleurs, que donne un .binds raw ?
Répondre
#23
tcl
|18:20:07| <BoX-Nantes>   TYPE FLGS     COMMAND              HITS BINDING (TCL)
|18:20:07| <BoX-Nantes>   raw  -|-      311                     1 whois:answ
|18:20:07| <BoX-Nantes>   raw  -|-      328                     0 whois:answ


Répondre Avertir
#24
\o/ Donc c'est bien le raw 311 à utiliser.
Et je te conseille de redémarrer l'eggdrop (pas rehash, restart) après avoir corrigé ton tcl pour éviter les surcharges des binds.

Corrections à apporter:
- changer le raw en 311,
- ajouter un putlog $text au tout début de ta proc whois:answ
Répondre
#25
voila j'ai ajouté un putlog au tout debut et mit le raw 311

tcl
|18:33:03| <BoX-Nantes> [18:33] PeTiTLu (127HNantes@3569517.eu) left #Nantes.
|18:33:04| <BoX-Nantes> [18:33] whois PeTiTLu effectué
|18:33:04| <BoX-Nantes> [18:33] PeTiTLu (127HNantes@3569517.eu) joined #Nantes.
|18:33:05| <BoX-Nantes> [18:33] whois:answ effectué



le .binds raw
tcl
|18:35:14| <BoX-Nantes> Liaisons de commande:
|18:35:14| <BoX-Nantes>   TYPE FLGS     COMMAND              HITS BINDING (TCL)
|18:35:14| <BoX-Nantes>   raw  -|-      311                     6 whois:answ



et le code modifié

tcl
bind raw - 311 whois:answ
proc whois:answ {from kw text} {
putlog "whois:answ effectué"
   set nick [lindex $text 1]
   set userhost [lindex $text 7]
   if { [string first $::spamhost $userhost] != -1} {
      putquick "KICK $::chanm $nick :$::kick(spambot)"
	  putquick "MODE $::chanm +b $userhost"
    putserv "PRIVMSG $::salonm :Alerte ! SpambOt détécté sous le pseudo: $nick  Host: $userhost "
   }
   return 0
}


Répondre Avertir
#26
tcl
|18:40:03| <BoX-Nantes> [18:40] whois BoX-Nantes effectué
|18:40:03| <BoX-Nantes> [18:40] BoX-Nantes joined #Nantes.
|18:39:49| <BoX-Nantes> [18:39]  BoX-Nantes BoX-Nantes 000Znowhere 4294339373.fr * :A deranged product of evil coders whois:answ effectué



il prend l'username seulement en mettant
tcl
proc whois:answ {from kw text} {
putlog " $text whois:answ effectué"


Répondre Avertir
#27
Effectivement, la réponse au raw 311 est nick username address * :info
Ta procédure doit donc être:
tcl
proc whois:answ {from kw text} {
   set args [split $text]
   set nick [lindex $args 0]
   set userhost [concat "*!" [lindex $args 1] "@" [lindex $args 2]]
   if { [string first $::spamhost $userhost] != -1} {
      putquick "KICK $::chanm $nick :$::kick(spambot)"
      putquick "MODE $::chanm +b $userhost"
      putserv "PRIVMSG $::salonm :Alerte ! SpambOt détécté sous le pseudo: $nick  Host: $userhost "
   }
   return 0
}


Mais je ne comprends toujours pas pourquoi ton eggdrop réagit au part et non pas au join...
Répondre
#28
merci,apres avoir testé et ajouté des putlogs il n'utilise pas
tcl
if { [string first $::spamhost $userhost] != -1} {



voici le code
tcl
proc whois:answ {from kw text} {
   set args [split $text]
   set nick [lindex $args 0]
      putlog "jusqu'ici sa va 1"
   set userhost [concat "*!" [lindex $args 1] "@" [lindex $args 2]]
   putlog "jusqu'ici sa va 2"
   if { [string first $::spamhost $userhost] != -1} {
   putlog "jusqu'ici sa va 3"
      putquick "KICK $chanm $nick :$::kick(spambot)"
      putquick "MODE $chanm +b $userhost"
      putserv "PRIVMSG $::salonm :Alerte ! SpambOt détécté sous le pseudo: $nick  Host: $userhost "
   }
   return 0
}



tcl
|21:23:50| <BoX-Nantes> [21:23] clauroblau (guest@1691762511.net) joined #Nantes.
|21:23:50| <BoX-Nantes> [21:23] jusqu'ici sa va 1
|21:23:50| <BoX-Nantes> [21:23] jusqu'ici sa va 2



il trouve tjr pas le host caché :x

tcl
• Whøis sur › clauroblau (guest@1691762511.net)
   Nøm › Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;
   Domaine › Networking
   Høst Caché › 2531986971.fr
   16 Salons [1 cømmun] › #nantes #Domtom-Le-Vrai +#revolution 
   Serveur › ircvoila1.tchat.orange.fr (Serveur t'Chat)
   Nick Enregistré › Non
   Inactivité › 3mins 49secs
• Øline Depuis › Dimanche 01 Mars 2009 à 21:08:12



là j'avoue je vois plus trop comment faire :x
Répondre Avertir
#29
Aurais-je dit une bétise ?
tcl
set userhost [concat "*!" [lindex $args 2] "@" [lindex $args 3]]


A ta place, c'est de $userhost que je ferais un putlog
Répondre
#30
toujours pareille aucune action :x je déséspére
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté