I updated the script because there were some changes on whatismyip.com. Also changed some names, in order not to conflict with nnscript. At the moment it works for me.

Code:
on *:connect: { newgetip }

alias newgetip {
  if ($sock(newgetip)) { sockclose newgetip } 
  sockopen newgetip automation.whatismyip.com 80
  sockmark newgetip $1
}

on *:sockopen:newgetip:{
  if ($sockerr) {
    echo sockopen:newgetip sockerr
    echo -snc info * [newgetip] Cannot resolve your ip: $sock($sockname).wsmsg
    return
  }
  echo sockopen:newgetip ok
  sockwrite $sockname GET $+(/n09230945.asp HTTP/1.0,$lf,HOST: $sock($sockname).addr,$str($lf,2))  
}

on *:sockread:newgetip:{
  sockread -f &a
  var %s = $gettok($bvar(&a,1-).text,-1,10), %r =  /^(?:\d{1,3}\.){3}\d{1,3}$/
  echo sockread:newgetip
  echo %s
  if (!$regex(%s,%r)) {
    echo sockread:newgetip error
    echo -snc info * [newgetip] Error parsing socket reply: $bvar(&a,1-).text
  }
  else {
    set -e %external.ip %s
    echo -snc info * newgetip Resolved external IP: %s (set at 'local info')
    .localinfo $host %s
  }
}