Using this sleep alias by Online, I made this $userhost() identifier a while back.

Code:
; Usage: $userhost($nick)
; Returns address type 5
; Note: Com must be unlocked: Options (alt+o) > Other > Lock
;
alias userhost {
  if ($isid) {
    if ($address($1,5)) return $v1
    if ($lock(Com)) {
      echo -acet $color(info) * Com must be unlocked Options (alt+o) > Other > Lock
      return
    }
    set -eu5 $+(%,userhost.,$1) $true
    userhost $1
    sleep 1000
    return $eval($+(%,ruserhost.,$1),2)
  }
  userhost $1
}
alias sleep {
  var %a = $+($ticks,.wsf)
  write %a <job id="js"><script language="jscript">WScript.Sleep( $+ $$1 $+ );</script></job>
  .comopen %a WScript.Shell
  if (!$comerr) .comclose %a $com(%a,Run,3,bstr,%a,uint,0,bool,true)
  .remove %a
}
raw 302:*: {
  var %address = $remove($right($gettok($2,2,61),-1),*),%nick = $gettok($2,1,61)
  if ($eval($+(%,userhost.,%nick),2)) {
    set -eu5 $+(%,ruserhost.,%nick) $+(%nick,!,%address)
    haltdef
  }
}