Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[Résolu] Correction TCl en SQL
#1
Bonsoir,

je souhaite avoir vos lumières car je n'arrive pas à "choisir" via le TCL ci-dessous à me faire reporter par l'eggdrop l'index de recherche souhaité avec les wildcards.

Par exemple, je souhaite que ça me rapporte ma recherche porté sur toute les ips "*94.158.245*"  ou bien "*94.158*" mais dans la BDD c'est enregistré comme ceci : 94.158.245.172

et si je tape sur donc .xbadip 94.158.245.172 :

°BadIp° [Ip] 94.158.245.172 [Reason] !Proxy! Check: Spam Source, BL -> [sbl-xbl.spamhaus.org] Pour plus de sécurité, activez votre Firewall ou sécurisez votre connexion. Spam Source found on your host please secure your computer.

Sauriez vous m'aider svp ?
Le TCL ci dessous.

En vous remerciant.

Cordialement.


tcl
# Proc pub - .badip #
bind pub n .xbadip xbadip
proc xbadip {nick host hand chan arg} {
set ip [lindex $arg 0]
set nb "0"
set var "0"
if {$ip==""} { putnow "NOTICE $nick :.badip <bot>"; return 0 }
if {$ip=="*"} {
service:connect
mysqlsel $::mysqlink "SELECT * FROM `badip` ORDER BY ip"
if {[mysqlresult $::mysqlink rows] ne 0} {
while {[set row [mysqlnext $::mysqlink]] != ""} {
set ip [lindex $row 0]
set reason [lindex $row 1]
incr nb 1
putnow "NOTICE $nick :\2\[IP\]\2 $ip \[Reason\] $reason"
set var 1
}
}
if {$var!="1"} { putnow "NOTICE $nick :Aucun résultat n'a été trouvé pour votre recherche"; return 0 }
if {$var=="1"} { putnow "NOTICE $nick :\2\00313° \0036° \0034°\003 °$nb°\2 Badip trouvé"; return 0 }
service:deconnect
return 0
}
service:connect
mysqlsel $::mysqlink "SELECT * FROM `badip` WHERE ip LIKE '%*%' OR ip LIKE '%?%'"
if {[mysqlresult $::mysqlink rows] ne 0} {
while {[set row [mysqlnext $::mysqlink]] != ""} {
incr nb 1
putnow "NOTICE $nick :\2°BadIp°\2 \[Ip\] [lindex $row 0] \[Reason\] [lindex $row 1]"
set var 1
}
}
service:deconnect
if {$var!="1"} { putnow "NOTICE $nick :Aucun résultat n'a été trouvé pour votre recherche"; return 0 }
if {$var=="1"} { putnow "NOTICE $nick :\2\00313° \0036° \0034°\003 °$nb°\2 BadIp trouvé"; return 0 }
return 0
}

  Reply
#2
J'ai un peu du mal à comprendre ta requête: SELECT * FROM badip WHERE ip LIKE '%*%' OR ip LIKE '%?%' Il manque légèrement l'adresse IP recherchée dedans.

Pour moi, le plus simple est de faire:

tcl
regsub -all -- \\\* $ip % sqlip
mysqlsel $::mysqlink "SELECT * FROM badip WHERE ip LIKE '${sqlip}'"



Code:
.tcl set testip 192.*.0.*
.tcl regsub -all -- \\\* $testip % sqlip
[08:27] tcl: builtin dcc call: *dcc:tcl CrazyCat 10 regsub -all -- \\\* $testip % sqlip
[08:27] tcl: evaluate (.tcl): regsub -all -- \\\* $testip % sqlip
Tcl: 2
.tcl putlog $sqlip
[08:28] tcl: builtin dcc call: *dcc:tcl CrazyCat 10 putlog $sqlip
[08:28] tcl: evaluate (.tcl): putlog $sqlip
[08:28] 192.%.0.%
zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
  Reply
#3
(25/11/2021, 09:29)CrazyCat Wrote: J'ai un peu du mal à comprendre ta requête: SELECT * FROM badip WHERE ip LIKE '%*%' OR ip LIKE '%?%' Il manque légèrement l'adresse IP recherchée dedans.

Pour moi, le plus simple est de faire:

tcl
regsub -all -- \\\* $ip % sqlip
mysqlsel $::mysqlink "SELECT * FROM badip WHERE ip LIKE '${sqlip}'"



Code:
.tcl set testip 192.*.0.*
.tcl regsub -all -- \\\* $testip % sqlip
[08:27] tcl: builtin dcc call: *dcc:tcl CrazyCat 10 regsub -all -- \\\* $testip % sqlip
[08:27] tcl: evaluate (.tcl): regsub -all -- \\\* $testip % sqlip
Tcl: 2
.tcl putlog $sqlip
[08:28] tcl: builtin dcc call: *dcc:tcl CrazyCat 10 putlog $sqlip
[08:28] tcl: evaluate (.tcl): putlog $sqlip
[08:28] 192.%.0.%
Effectivement, à trop avoir la tête dedans, je fini par faire n'importe quoi.
Je ne connaissais pas du tout cette manière de procéder...

Merci de m'avoir éclairci les idées CrazyCat :)
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Correction d'un codage tcl d'avertissement de comportement KeeViiNou 4 4,016 30/12/2012, 12:36
Last Post: KeeViiNou

Forum Jump:


Users browsing this thread: 1 Guest(s)