Port Scanner
Posted by HellRaz0r
Monday, December 04, 2006
Description: mIRC Based PortScanner


;/portscan 127.0.0.1 1-100
;/portscan stop
alias portscan {
  if ($1- == stop) {
    echo -a [^B]Stopped Scanning[^B]
    .sockclose PortScan-* | .reload -rs $qt($script)
  }
  elseif (!$2) halt
  elseif !$longip($1) { echo -a [^B]Please enter a valid ip[^B] | halt }
  .sockclose $+(PortScan-,$1,:*)
  var %x $gettok($2,1,$asc(-)), %window $+(@PortScan-,$1), %hinum = $gettok($2,2,$asc(-))
  if (!$window(%window)) window -e %window
  aline %window [^B]Scan Started[^B]
  while %x <= $gettok($2,2,$asc(-)) {
    var %y 1 | while %y <= 10 { portscan2 %window $1 %x | inc %x | inc %y | pause ms 100 }
    if (%x == 11) portscan2 %window $1 %x
    elseif %x == %hinum {
      portscan2 %window $1 %x
      aline %window [^B]Scan Finished[^B]
      if $hget($1,openports) { aline %window [^B]Open Ports:[^B] $v1 | .hfree -sw $1 }
      else aline %window [^B]Couldnt find any open ports[^B]
    }    
    pause s 2 | .sockclose $+(PortScan-,$1,:*)
    inc %x
  }
}
alias -l portscan2 {
  if (!$3) halt
  .sockopen $+(PortScan-,$2,:,$3) $2 $3
  $iif(!$window($1),window -e $1,aline $1 Scanning: $+($2,:,$3))
}
on *:sockopen:PortScan-*:{
  if $sock($sockname).status == active {
    var %window $+(@PortScan-,$sock($sockname).ip)
    if !$istok($hget($sock($sockname).ip,openports),$sock($sockname).port,32) {
      if (!$window(%window)) window -e %window
      aline %window [^B]Open Port:[^B] $+($sock($sockname).ip,:,$sock($sockname).port)
      hadd -m $sock($sockname).ip openports $hget($sock($sockname).ip,openports) $sock($sockname).port
      .sockclose $sockname
    }
  }
}
alias pause {
  var %e = !echo $color(info) -a * /pause:
  if ($version < 5.91) {
    %e this snippet requires atleast mIRC version 5.91
  }
  elseif (!$regex(pause,$1-,/^m?s \d+$/Si)) {
    %e incorrect/insufficient parameters. Syntax: /pause <s|ms> <N>
  }
  elseif ($1 == ms) && ($istok(95 98 ME,$os,32)) {
    %e cannot use milliseconds parameter on OS'es beneath Win2k
  }
  elseif ($2 !isnum 1-) {
    %e must specify a number within range 1-
  }
  else {
    var %wsh = wsh $+ $ticks, %cmd
    if ($1 == s) %cmd = ping.exe -n $int($calc($2 + 1)) 127.0.0.1
    else %cmd = pathping.exe -n -w 1 -q 1 -h 1 -p $iif($2 > 40,$calc($2 - 40),$2) 127.0.0.1
    .comopen %wsh wscript.shell
    .comclose %wsh $com(%wsh,run,1,bstr*,% $+ comspec% /c %cmd >nul,uint,0,bool,true)
  }
}
Submit a comment
Oops! You need to login or register before you can post a comment!

ebaum's world