rendered paste bodyon *:DNS:{
if ($raddress) {
if ($raddress isnum) { traceip $raddress }
else {
var %tot = $dns(0)
var %i = 1
while (%i <= %tot) {
traceip -m $dns(%i).ip
inc %i
}
}
}
else {
traceip $dns(0).ip
}
}
alias traceip {
if ($1) {
if ($1 == -m) {
if (!$2) { echo $color(info) -a * /traceip: insufficient parameters }
else {
%ip = $2
if (!$sock(traceip $+ $2)) { sockopen traceip $+ %ip www.dnsstuff.com 80 }
}
}
else {
%ip = $1
if (!$sock(traceip $+ $1)) { sockopen traceip $+ %ip www.dnsstuff.com 80 }
}
}
}
on *:SOCKOPEN:traceip*:{
if ($sockerr > 0) {
sockclose $sockname
echo $color(info) -at * An error has accured.
if ($sockerr == 3) {
if (!$sock($sockname)) { sockopen traceip $+ %ip www.dnsstuff.com 80 }
}
}
else {
sockwrite -n $sockname GET /tools/whois.ch?ip= $+ %ip HTTP/1.1
sockwrite -n $sockname Host: www.dnsstuff.com
sockwrite -n $sockname Connection: keep-alive
sockwrite $sockname $crlf
}
}
on *:SOCKCLOSE:traceip*:{
if (!%ip) { * An error has accured. }
}
on *:SOCKREAD:traceip*:{
sockread %trace
tokenize 32 %trace
if (Country: isin %trace) {
echo $color(other) -at %ip is in $2-
sockclose $sockname
}
unset %trace
.timerruns 1 1 unset %ip
}
menu nicklist {
Country $chr(91) $+ $mid($address($$1,2),5,$len($address($$1,2))) $+ $chr(93):dns $mid($address($$1,2),5,$len($address($$1,2)))
}
menu query {
Country $chr(91) $+ $gettok($query($$1).addr,2,64) $+ $chr(93):dns $gettok($query($$1).addr,2,64)