DNSBL: DNS-based blacklist

By Spoofing on Nov 01, 2010

Simple alias: /dnsbl <ip|host>

Example: /dnsbl rbl.efnetrbl.org 173.204.90.27 /echo -a
Returns: > DNSBL: resolved 173.204.90.27 to 127.0.0.1 by rbl.efnetrbl.org

Script:

on *:JOIN:#:dnsbl rbl.efnetrbl.org $mid($address,$calc($pos($address,@) + 1)) /ban -ku600 # $nick 2

enjoy! =)

alias dnsbl {
  var %server = $1, %address = $2, %callback = $3-
  hinc -m dnsbl id
  hadd -m dnsbl $hget(dnsbl,id) %address %server %callback
  if ($iptype(%address) == ipv4) {
    var %ip = $+($gettok(%address,4,46),.,$gettok(%address,3,46),.,$gettok(%address,2,46),.,$gettok(%address,1,46))
    dns -h $+(%ip,.,%server)
  }
  else {
    dns -h %address
  }
}
on *:DNS: {
  var %ip = $+($gettok($dns(0).addr,4,46),.,$gettok($dns(0).addr,3,46),.,$gettok($dns(0).addr,2,46),.,$gettok($dns(0).addr,1,46))
  if ($hfind(dnsbl,$dns(0).addr *,0,w).data) {
    var %i = $v1
    while (%i) {
      var %n = $dns(0), %id = $hfind(dnsbl,$dns(0).addr *,%i,w).data, %server = $gettok($hget(dnsbl,%id),2,32), %callback = $gettok($hget(dnsbl,%id),3-,32), %i = %i - 1
      while (%n) {
        dnsbl %server $dns(%n).ip %callback
        dec %n
      }
      hdel dnsbl %id
    }
  }
  elseif ($hfind(dnsbl,%ip *,0,w).data) {
    var %i = $v1
    while (%i) {
      var %id = $hfind(dnsbl,%ip *,%i,w).data, %server = $gettok($hget(dnsbl,%id),2,32), %callback = $gettok($hget(dnsbl,%id),3-,32), %i = %i - 1
      if (%server == $gettok($dns(0).addr,5-,46)) {
        scid -r %callback DNSBL: resolved %ip to $dns(0).ip by %server
        hdel dnsbl %id
      }
    }
  }
}

Comments

Sign in to comment.
Dark|   -  Nov 30, 2010

What is this used for? xD

 Respond  
Gummo   -  Nov 04, 2010

You can only use $site within events where the address of a user was received.

 Respond  
WorldDMT   -  Nov 02, 2010

$mid($address,$calc($pos($address,@) + 1))

u can do

$gettok($address,2,64)

or i think u can just use $site

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.