Code:
 
dialog proxy {
  title Proxy Scaner
  size 60 100 320 170
  icon graphics\telnet.ico
  option dbu
  button "Close", 10, 279 74 35 10, flat,ok
  list 11, 5 90 310 80, hsbar
  combo 12, 85 45 180 40
  button "KickBan", 13, 279 34 35 10, flat
  button "Start", 17, 279 20 35 10, flat
  button "Found", 18, 279 61 35 10, flat
  text "", 20, 90 25 170 12
  edit "", 1, 5 33 65 10, autohs
  edit "", 22, 5 73 65 10, autohs
  button "Add Port", 2, 5 20 30 10, flat multi
  button "Edit Port", 3, 40 20 30 10, flat multi
  button "Edit Nick", 21, 40 60 30 10, flat multi
  button "Add Nick", 19, 5 60 30 10, flat multi
  button "Reset", 29, 279 48 35 10, flat
  text "Add Port To Proxy Scaner", 23, 5 10 65 10
  text "Add Nick To Exempted List", 24, 5 50 80 10
  text "Scaner for exploited hosts, such as open proxies, trojans etc.", 27, 100 10 155 10
  box "", 25, 85 18 180 24
  box "", 26, 2 5 316 163
}
on *:dialog:proxy:sclick:*: {
  if ($did == 3) { run notepad.exe ProxyCheckList.txt }
  if ($did == 21) { run notepad.exe ProxyChecknick.txt }
  elseif ($did == 2) { .write ProxyCheckList.txt $did(1).text }
  elseif ($did == 19) { .write ProxyChecknick.txt $did(22).text }
  elseif ($did == 14) { did -v proxy 15 }
  elseif ($did == 13) { ban $chan($active) %chk.nickkb 2 | kick $chan($active) %chk.nickkb }
  elseif ($did == 17) { .enable #PROXYCHKD ON }
  elseif ($did == 10) { .disable #PROXYCHKD Off }
  elseif ($did == 18) { .run proxcheck.txt }
  elseif ($did == 29) { did -r proxy 1,11,12,20,22 }
  
}
#PROXYCHKD on
  on *:join:#:{
  if ($nick !isreg #) || ($read(proxychecknick.txt,w,$nick)) halt
  if ((~ !== $address) || ($nick == $me)) { halt }
  %chk.addr3 = $address($nick,5) 
  %chk.addr = $mid($mask(%chk.addr3,2),5,100))  
  :l 
  inc %chk.l 
  %s.read = $read -l $+ %chk.l proxcheck.txt 
  if (%chk.addr == %s.read) { %chk.l = 0 | halt } 
  else { %chk.l = 0 | goto n } | goto l 
  :n 
  if (%chk.addr == $null) { halt } 
  inc %i.chk 
  did -a proxy 11 ProxyCheck...  Nick.  $+ $nick  Chan.  $+ #  Address.  $+ %chk.addr 
  set %px.ck 1
  set %px.ck1 $calc($lines(ProxyCheckList.txt) - 1)
  while (%px.ck <= %px.ck1) {
  sockopen chk. [ $+ [ $r(111111,999999) ] $+ . $+ [ $nick ] ] %chk.addr $read(ProxyCheckList.txt,%px.ck)
  inc %px.ck
  }
} 

;  on *:part:*:{ 
;  if ($nick == $me) { halt } 
;  %chk.addr3 = $address($nick,5) 
;  %chk.addr = $mid($mask(%chk.addr3,2),5,100)) 
;  :l 
;  inc %chk.l 
;  %s.read = $read -l $+ %chk.l proxcheck.txt 
;  if (%chk.addr == %s.read) { %chk.l = 0 | halt } 
;  else { %chk.l = 0 | goto n } 
;  goto l 
;  :n 
;  if (%chk.addr == $null) { halt } 
;  inc %i.chk 
;  did -a proxy 11 ProxyCheck..... Nick.. $+ $nick $+  Chan.. $+ # $+  Address.. $+ %chk.addr $+  
;  sockopen chk. [ $+ [ $r(111111,999999) ] $+ . [ $+ [ $nick ] %chk.addr 65535
;} 

on *:sockopen:chk.*:{
  set %lastproxyaddress $address($nick,5) 
  if ($sockerr) { return } 
  inc %i.chk2 
  inc %chk.addr3 $nick
  set %chk.nickkb $remove($sock($sockname),$left($sock($sockname),11)) 
  set %chk.nickp $sock($sockname).port
  did -r proxy 11 2 SOCKET-INFO: Errors..( $+ $sock($sockname).wsmsg $+ ) Timer:( $+ $duration($sock(chk.*).to)) $+ $nick  ) 
  did -a proxy 12  $sock($sockname).ip
  did -a proxy 20 Found Proxy $remove($sock($sockname),$left($sock($sockname),11)) $sock($sockname).ip $sock($sockname).port Select && Press Kick Ban   
  write proxcheck.txt $asctime(dd/mm/yy-HH:nn) $comchan(%chk.nickkb,1) %chk.nickkb $sock($sockname).ip $+ : port  $sock($sockname).port
  ban -ku3600 $$comchan(%chk.nickkb,1) %chk.nickkb 2 14Open Port %chk.nickp Detected. Please secure before rejoining this channel
  return 
}

#PROXYCHKD END