Clone Scanner Extended

By ThievingSix on Jan 10, 2008

I wanted a more detailed clone scanner that did more than just addresses. I was tired of having vhosts daunt me. So I made this, now this was tested on daIRC, you might have to edit it a bit to get it to work on your preferred server.

This script compares addresses, real names, user names, and nick similarities. It shows results in a custom window.

To Use:
Wait for someone to join a channel or do /clonescan to do a full channel scan.

Raw 315:*:{
  haltdef
}

Raw 352:*:{
  tokenize 32 $3-
  .ialmark $4 $1 $+ @ $+ $2 $7-
  haltdef
}

Raw 375:*:{
  halt
}

Raw 376:*:{
  halt
}

On *:Join:*:{
  echo $chan 3,1[ $+ $asctime(hh:nn:ssTT) $+ ] * Address( $+ $nick $+ ): $address($nick,5)
  echo $chan 3,1[ $+ $asctime(hh:nn:ssTT) $+ ] * Options( $+ $nick $+ ): Please press F5 - Kick or F6 - Ban or F7 - KickBan  
  set %LastNick. [ $+ [ $Chan ] ] $nick
  set %GetNewInfo 1
  whois $nick
  If ( $nick == $me ) {
    .who $chan
  }
  clonescanuser $Nick
}

alias clonescanuser {
  var %Nick.Nick $$1
  tokenize 32 $IAL($$1).Mark
  var %Nick.RealName $2- 
  var %Nick.Address $1
  var %I 1
  var %Max $Nick($Chan,0)
  var %Result $false
  var %FirstFind $false
  While (%I <= %Max) {
    var %Nick2.Nick $Nick($Chan, [ %I ])
    tokenize 32 $IAL(%Nick2.Nick).Mark
    var %Nick2.RealName $2- 
    var %Nick2.Address $1
    If (%Nick2.Nick iswm %Nick.Nick) { var %Result $true }
    If (%Nick.Nick iswm %Nick2.Nick) { var %Result $true }
    If (%Nick2.RealName iswm %Nick.RealName) { var %Result $true }
    If (%Nick.RealName iswm %Nick2.RealName) { var %Result $true }
    If (%Nick.RealName == %Nick2.RealName) { var %Result $true }
    If (%Nick2.Address == %Nick.Address ) { var %Result $true }
    If (%Nick2.Address iswm %Nick.Address ) { var %Result $true }
    If (%Nick.Address iswm %Nick2.Address ) { var %Result $true }
    If (%Nick.Nick == %Nick2.Nick) { var %Result $false }  
    inc %I
    If (%Result == $true) {
      If (%FirstFind == $false) {
        aline 3 @CloneScan *
        aline 3 @CloneScan * 9Clone User:     0[11Nick: 0 $+ %Nick.Nick $+ ] 0[11Address: 0 $+ %Nick.Address $+ ] 0[11Real Name: 0 $+ %Nick.RealName $+ ]
        var %FirstFind == $true)
      }
      set %CheckedUsers %CheckedUsers %Nick.Nick %Nick2.Nick
      aline 3 @CloneScan * 4Clone detected: 0[11Nick: 0 $+ %Nick2.Nick $+ ] 0[11Address: 0 $+ %Nick2.Address $+ ] 0[11Real Name: 0 $+ %Nick2.RealName $+ ]
      var %Result $false
    }
  }
  If (%FirstFind != $false) {
    aline 3 @CloneScan *
  }
}

alias clonescan {
  var %I 1
  var %Max $Nick($Chan,0)
  set %CheckedUsers
  window -ak0xz @CloneScan
  clear @CloneScan
  While (%I <= %Max) {
    var %Nick $Nick($Chan, [ %I ])
    If (%Nick !isin %CheckedUsers) { 
      clonescanuser %Nick
    }
    inc %I
  }
  unset %CheckedUsers
}

raw 311:*: {
  If (%GetNewInfo == 1) {
    tokenize 32 $2-
    .ialmark $1 $2 $+ @ $+ $3 $5-
    unset %GetNewInfo 
    halt
  }
}

alias whois { If (%GetNewInfo != 1) { uwho $$1 } }

Comments

Sign in to comment.
x1L22   -  Jul 27, 2010

Ban ?

 Respond  
Joshuaxiong1   -  Jan 12, 2008
  • /set: line too long (line 61, remote.ini)
 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.