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
}
}