Modification proxycheck
#6
Bonjour,

Voici la modification :

TCL
# open proxy checker for eggdrop
# (c) James Seward 2003/4
# version 1.0

# http://www.jamesoff.net/projects/eggdrop
# james@jamesoff.net

# Released under the GPL

## INSTRUCTIONS
###############################################################################

# This script will check the hosts of people joining channels against one or
# RBLs. Choose your RBLs wisely, some of them list DIALUP SPACE and that would
# be a bad thing to be matching your IRC users against :P
#
# Enable the 'proxycheck' flag for channels you want the script active on
# --> .chanset #somechannel +proxycheck
#
# Users who are +o, +v, or +f in your bot (local or global) won't be checked.
#
# Turn on console level d on the partyline to see some debug from the script
# --> .console +d (to enable)
# --> .console -d (to disable)

## CONFIG
###############################################################################

# space-separated list of RBLs to look in
set proxycheck_rbls { "cbl.abuseat.org" "opm.blitzed.org" "dnsbl.ahbl.org" }

# time in minutes to ban for
set proxycheck_bantime 15

# stop editing here unless you're TCL-proof

 
 
## CODE
###############################################################################

#add our channel flag
setudef flag proxycheck

#bind our events
bind join - *!*@* whois:aa
bind raw - 320 whois:aa

 
#swing your pants

# catch joins
 
putserv "WHOIS $nick"
proc whois:aa {nick host handle channel arg} {
set ip [lindex $arg 5]
putserv "PRIVMSG #!accueil! :IP =>>>> $ip <<<<="

 
  #check we're active
  if {![channel get $channel proxycheck]} {
    return 0
  }

  #don't apply to friends, voices, ops
  if {[matchattr $handle fov|fov $channel]} {
    return 0
  }

  #get the actual host
  regexp ".+@(.+)" $host matches newhost
  if [regexp {[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$} $newhost] {
    #it's a numeric host, skip the lookup
    proxycheck_check2 $newhost $newhost 1 $nick $newhost $channel
  } else {
    putloglev d * "proxycheck: doing dns lookup on $newhost to get IP"
    dnslookup $newhost proxycheck_check2 $nick $newhost $channel
  }
}

# first callback (runs RBL checks)
proc proxycheck_check2 { ip host status nick orighost channel } {
  global proxycheck_rbls
 
  if {$status} {
    putloglev d * "proxycheck: $host resolves to $ip"
    # reverse the IP
    regexp {([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})} $ip matches a b c d
    set newip "$d.$c.$b.$a"

    # look it up in the rbls
    foreach rbl $proxycheck_rbls {
      putloglev d * "proxycheck: looking up $newip.$rbl"
      dnslookup "$newip.$rbl" proxycheck_check3 $nick $host $channel $rbl
    }
  } else {
       putlog "proxycheck: Couldn't resolve $host. (No further action taken.)"
  }
}

# second callback (catches RBL results)
proc proxycheck_check3 { ip host status nick orighost channel rbl } {
  global proxycheck_bantime
 
  if {$status} {
    putlog "proxycheck: got host $host = ip $ip from RBL $rbl ... banning"
    newchanban $channel "*@$orighost" "proxychk" "proxycheck: $rbl" $proxycheck_bantime
  }
  #if we didn't get a host, they're not in RBL
}
 
putlog "proxycheck 1.0 by JamesOff loaded"



Seulement je trouve pas comment faire => Tcl error [whois:aa]: wrong # args: should be "whois:aa nick host handle channel arg" <= avec cette erreur, je sais quelle vient de la proc après le whois, mais je comprend pas trop comment modifier ça pour mettre le raw dans la proc whois:aa.

Si vous avez une solution je suis preneur.

Merci.
Répondre Avertir


Messages dans ce sujet
Modification proxycheck - par crash - 02/02/2009, 22:40
RE: Modification proxycheck - par CrazyCat - 03/02/2009, 10:15
RE: Modification proxycheck - par Merwin - 03/02/2009, 10:20
RE: Modification proxycheck - par CrazyCat - 03/02/2009, 12:47
RE: Modification proxycheck - par Merwin - 03/02/2009, 14:39
RE: Modification proxycheck - par crash - 03/02/2009, 17:01
RE: Modification proxycheck - par CrazyCat - 03/02/2009, 18:29

Atteindre :


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