Accueil





Générer un masque de host



Syntaxe : hostmask_process <nick> <host> [type]

Le host doit être de la forme ident@host (c'est le format habituel utilisé par l'Eggdrop).

Le type peut valoir de 1 à 10 et correspond au modèle de masque souhaité.

Si le type n'est pas spécifié, le masque retourné sera de la forme nick!ident@host sans jokers.


Types possibles :
0 = *!ident@host
1 = *!*ident@host
2 = *!*@host
3 = *!*ident@*.domaine
4 = *!*@*.domaine
5 = nick!ident@host
6 = nick!*ident@host
7 = nick!*@host
8 = nick!*ident@*.domaine
9 = nick!*@*.domaine
10 = *!ident@*.domaine


Procédure
############################################################################### ### Génération de masques de type user!ident@host ############################################################################### proc ::hostmask_process {nick host {type {}}} { set fullhost "$nick!$host" set nick "*" ; set ident "*" ; set host "*" scan $fullhost "%\[^!\]!%\[^@\]@%s" nick ident host set nick [join [::tcl::string::trimleft $nick "@+"]] set ident [join [::tcl::string::trimleft $ident "~"]] set hostmask $host if { [regexp {([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)} $host] } { set host [lreplace [split $host "."] end end "*"] } else { set host [split $host "."] if { [llength $host] == 3 } { set host [lreplace $host 0 0 "*"] } elseif { [llength $host] > 3 } { set host [lreplace $host 0 1 "*"] } } set domain [join $host "."] switch -- $type { "0" { return "*!$ident@$hostmask" } "1" { return "*!*$ident@$hostmask" } "2" { return "*!*@$hostmask" } "3" { return "*!*$ident@$domain" } "4" { return "*!*@$domain" } "5" { return "$nick!$ident@$hostmask" } "6" { return "$nick!*$ident@$hostmask" } "7" { return "$nick!*@$hostmask" } "8" { return "$nick!*$ident@$domain" } "9" { return "$nick!*@$domain" } "10" { return "*!$ident@$domain" } default { return $fullhost } } }


Exemples
hostmask_process machin bidule@un.host.quelconque 1 Tcl: *!*bidule@un.host.quelconque
hostmask_process machin bidule@un.host.quelconque 2 Tcl: *!*@un.host.quelconque
hostmask_process machin bidule@un.host.quelconque 3 Tcl: *!*bidule@*.host.quelconque

©2005-2016 Menz Agitat