Public feed #377642

Unnamed

public text v1 · immutable
Raw Edit
·published 2007-03-01 22:11 UTC
rendered paste body
alias scanip {
  if ( $1 == $null ) { echo -a 3* Scanip syntax: /scanip <IP/nick> | halt }
  if (*.*.*.* !iswm $1) { echo -a 3* Retreiving IP address for $1 $+ ... | set %nick.ip $1 | scan.nick | return }
  echo -a 3 * Scanning # for ( $+ $1 $+ )...
  set -u20 %scanning.for $1
  set -u20 %scan.active $true
  set -u20 %chan $chan($active)
  set -u20 %st $nick( %chan ,0)
  set -u20 %sp 1 
  .userhost $nick( %chan , %sp )
}
alias scan.nick {
  set -u20 %scan.nick $true
  userhost %nick.ip
}
raw 302:*:{ 
  if (%scan.active) || (%scan.nick) { 
    set -u20 %nickhost $2 
    scan.for.match 
  }
}
alias scan.for.match {
  tokenize 64 %nickhost
  set -u20 %curr.nick $1
  set -u20 %toknickhost $2
  tokenize 61 %curr.nick
  set -u20 %current.nick $1
  .dns %toknickhost
}
on 1:DNS:{
  if (%scan.active) {
    if ( $dns(1).ip == %scanning.for ) {
      echo -a 3* %current.nick Matches $dns(1).ip
      unset %scan.active
      halt
    }
    inc %sp  
    if ( %sp < %st ) { userhost $nick( %chan , %sp ) }
  }
  if (%scan.nick) {
    if (!$dns(1).ip) { echo -a 3* %nick.ip has userhost %toknickhost | unset %scan.nick | halt }
    echo -a 3* %nick.ip has resolved to $dns(1).ip

    unset %scan.nick
    halt
  }
}
menu channel {
  Ip Scanner:scanip $$?="Nick/Ip"
}