Code:
alias -l getip {
  if ($sock(getip)) { sockclose getip } 
  sockopen getip www.whatismyip.com 80
  sockmark getip $1
  echo $color(info).dd -s * [GetIP] Resolving your IP address...
}
on *:CONNECT:{ getip }

on *:sockopen:getip:{
  if ($sockerr) { 
    echo color(info).dd -s * [GetIP] Cannot resolve your ip: $sock($sockname).wsmsg 
  }
  else {
    var %s = sockwrite -n $sockname
    %s GET /automation/n09230945.asp HTTP/1.0
    %s Host: $sock($sockname).addr
    %s 
  }
}
on *:SOCKWRITE:GETIP:{
  If ($sockerr) {
    echo $color(info).dd -s * [GetIP] Cannot resolve your ip: $sock($sockname).wsmsg 
  }
}
on *:sockread:getip:{
  if ($sockerr) { 
    echo $color(info).dd -s * [GetIP] Cannot resolve your ip: $sock($sockname).wsmsg 
  }
  else {
    sockread -f &a
    var %s = $gettok($bvar(&a,1-).text,-1,10), %r =  /^(?:\d{1,3}\.){3}\d{1,3}$/
    if (!$regex(%s,%r)) { 
      echo $color(info).dd -s * [GetIP] Error parsing socket reply: $bvar(&a,1-).text 
    }
    else {
      set -e %external.ip %s
      if (($group(#set.ip.auto) == on) || ($sock($sockname).mark)) {
        .localinfo $host %s
        echo $color(info).dd -s * [GetIP] Resolved external IP: %s (set at 'local info')
      }
    }
  }
}
on *:SOCKCLOSE:GETIP:{
  if ($sockerr) { 
  echo $color(info).dd -s * [GetIP] Cannot resolve your ip: $sock($sockname).wsmsg }
}
#set.ip.auto off
#set.ip.auto end

menu status {
  Set 'local info' to external IP $+([,auto,$chr(58) $replace($group(#set.ip.auto).status,on,enabled,off,disabled),])
  .$iif(($group(#set.ip.auto) == on),$style(1)) Auto on connect
  ..$iif(($group(#set.ip.auto) == on),disable,enable) automation : $iif(($group(#set.ip.auto) == on),.disable,.enable) #set.ip.auto
  .&Set 'local info' to ext. IP now : { getip verbose }
  .-
  .External IP $+ $chr(58) $iif((%external.ip),$v1,not resolved yet) : clipboard %external.ip
  .Local info IP $+ $chr(58) $ip : clipboard $ip
  .-
  .&Reset 'local info'
  ..&normal (winsock) lookup : localinfo -h
  ..$iif(($status != connected),$style(2)) &userhost (server) lookup: localinfo -u
}


I am SReject
My Stuff