Identification automatique
#1
On demande souvent un script d'identification automatique sur les services Anope... Voici ce que j'utilise:
TCL
# CONFIGURATION
set nickserv "nickserv"; # Nick du NickServ
set pass "monpass"; # Pass du nick
 
bind evnt - "init-server" evnt:init_server
proc evnt:init_server {type} {
   global botnick nickserv pass username
   putserv "MODE $botnick +iB-ws"
   if {$botnick!=$username} {
      putquick "PRIVMSG $nickserv :GHOST $username $pass"
   }
   putquick "PRIVMSG $nickserv :IDENTIFY $pass"
   return 0
}
 
bind notc - "*IDENTIFY*" init:ident
proc init:ident {nick uhost handle text {dest ""}} {
   global botnick nickserv pass 
   if {$dest == ""} {
      set dest $botnick
   }
   putserv "PRIVMSG $nickserv :identify $pass"
   return 0
}
putlog "Initialization loaded"


Répondre
#2
Vous aurez constaté que le tcl donné précédemment fait 2 fois l'identification. L'identification lors de la connexion au serveur n'est en fait utile que lorsqu'il y a un réglage KILL IMMED sur NickServ, ce qui est rare et cela peut être dangereux si vous envoyez votre eggdrop sur un serveur ne possédant pas de NickServ et où un petit malin aura pris ce nick.

De plus, les variables $nickserv et $pass sont accessibles à toute personne ayant accès à la party-line si vous avez activé la commande .tcl

Voici donc une version légèrement différente, et je ferais bientôt une version permettant de vérifier un peu plus que le nick de NickServ.
TCL
namespace eval AnopIdent {
    variable nickserv "NickServ"
    variable chanserv "ChanServ"
    variable nspass "monpass"
 
    bind notc - "*IDENTIFY*" AnopIdent::ident
}
proc AnopIdent::ident {nick uhost handle text {dest ""}} {
   if {$dest == ""} { set dest $::botnick }
   if {[string tolower $nick]!=[string tolower $AnopIdent::nickserv]} { return 0 }
   putserv "PRIVMSG $AnopIdent::nickserv :identify $AnopIdent::nspass"
   return 0
}
putlog "Initialization loaded"


Répondre
#3
Merci
Répondre Avertir
#4
Citation :De plus, les variables $nickserv et $pass sont accessibles à toute personne ayant accès à la party-line si vous avez activé la commande .tcl

Je comprends pas,avec ta nouvelle version ce problème (qui n'en n'est pas) existe toujours non?

Code :
.tcl set AnopIdent::nspass

Je vois pas trop l'intéret du namespace, si le gars donne accès à .tcl à n'importe qui c'est sa faute, aucun namespace n'y changera quoi que ce soit Smile
Répondre Avertir
#5
Il est tout de même plus dur de trouver $::AnopIdent::nspass que $nspass
Et surtout, ça permet aussi de ne pas avoir de soucis avec un autre tcl qui utiliserait nspass
Répondre
#6
CrazyCat a écrit :On demande souvent un script d'identification automatique sur les services Anope... Voici ce que j'utilise:
TCL
# CONFIGURATION
set nickserv "nickserv"; # Nick du NickServ
set pass "monpass"; # Pass du nick
 
bind evnt - "init-server" evnt:init_server
proc evnt:init_server {type} {
   global botnick nickserv pass username
   putserv "MODE $botnick +iB-ws"
   if {$botnick!=$username} {
      putquick "PRIVMSG $nickserv :GHOST $username $pass"
   }
   putquick "PRIVMSG $nickserv :IDENTIFY $pass"
   return 0
}
 
bind notc - "*IDENTIFY*" init:ident
proc init:ident {nick uhost handle text {dest ""}} {
   global botnick nickserv pass 
   if {$dest == ""} {
      set dest $botnick
   }
   putserv "PRIVMSG $nickserv :identify $pass"
   return 0
}
putlog "Initialization loaded"

Répondre Avertir
#7
bonjours l indentification automat m interesses mais ou decharger se script tcl je cherches et j arrives pas a trouver le dechargement svp aidez moi j ai des problemes d identification aupres de mon bot je suis sur irc.icq.com . salle : #testouille je m appeles beni .vos explications mon beaucoup aider mais la se script est introuvable.mon msn : davidchaim@hotmail.com
Répondre Avertir
#8
il suffit de copier/coller le code donner en remplaçant les variables ... cqfd non ?
CrazyCat a écrit :La prochaine fois, essaye d'imaginer que j'ai un cerveau ...
Répondre Avertir


Atteindre :


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