oh well here you are then
its 4 years old

Code:
;-------------------------------------------
;              Trace IP
;-------------------------------------------

alias traceip {
  if ($dialog(tracert) == $null) { halt }
  .enable #NDNS
  sockclose whois
  if ($regex($1,/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/)) {
    sockopen whois whois.cyberabuse.org 43
    set %whois.ip %tracedata
  }
  else { dns %tracedata }
}



#NDNS off
on *:DNS:{
  if ($dns(0).ip) {
    set %whois.ip $dns(0).ip
    sockopen whois whois.cyberabuse.org 43
  }
  else {
    if ($dialog(tracert) == $null) { dialog -mn tracert tracert }
    did -a tracert 4 Error: Unable to resolve Host or IP ( $+ %tracedata $+ )
    did -e tracert 5,6
  }
  .disable #NDNS
}
#NDNS end


on *:sockopen:whois: {
  if ($sockerr) {
    if ($dialog(tracert) == $null) { dialog -mn tracert tracert }
    did -a tracert 4 Error: Unable to connect to WHOIS server.
    did -e tracert 5,6
    sockclose whois 
  }
  else {
    sockwrite -nt whois %whois.ip
    unset %whois.ip
  }
}


on *:sockread:whois: {
  if ($dialog(tracert) == $null) { dialog -mn tracert tracert }
  var %data
  sockread -n %data
  if ($left(%data,1) == %) || (%data == $null) { return }
  if ([ Informations * iswm $strip(%data)) { did -ra tracert 4 Tracerouting %tracedata $crlf | did -a tracert 4 $chr(32) $crlf | did -a tracert 4 %data $crlf | did -a tracert 4 $chr(32) $crlf }
  elseif (IP range * iswm $strip(%data)) { did -a tracert 4 %data $crlf }
  elseif (Network name * iswm $strip(%data)) { did -a tracert 4 %data $crlf }
  elseif (Infos * iswm $strip(%data)) { did -a tracert 4 %data $crlf }
  elseif (Country * iswm $strip(%data)) { did -a tracert 4 $chr(32) $crlf | did -a tracert 4 %data $crlf }
  elseif (Abuse * iswm $strip(%data)) { did -a tracert 4 %data $crlf }
  elseif (Source * iswm $strip(%data)) { did -a tracert 4 %data $crlf }
  unset %tracedata
  did -e tracert 5,6
}



and the dialog (non improtant stuff but if you want to test it you need it)
Code:
alias tracert {
  if (!$dialog(tracert)) && ($1 != $null) { .set %tracedata $1 | dialog -mn tracert tracert }
  elseif (!$dialog(tracert)) { dialog -mn tracert tracert }
}


dialog tracert {
  title "Trace Route"
  icon $mircdirsystem\domin.icl, 21
  size -1 -1 189 224
  option dbu
  box "User or Host or IP", 1, 10 11 170 38
  edit "", 2, 17 29 156 11, autohs
  box "", 3, 10 57 170 136
  edit "", 4, 17 68 156 119, autohs autovs multi
  button "Trace", 5, 97 203 35 14
  button "Close", 6, 145 203 35 14, cancel
}

on *:dialog:tracert:init:0:{
  did -r $dname 4
  did -m $dname 4
  did -b $dname 5
  if (($dialog(hostscan)) || ($dialog(chanscan)) || ($dialog(nickscan)) || ($dialog(clonescan)) || ($dialog(operscan)) || (%tracedata != $null)) { did -ra $dname 2 %tracedata | did -e $dname 5 }
}


on *:dialog:tracert:edit:2:{
  if ($did($did).text == $null) { did -b $dname 5 }
  else { did -e $dname 5 }
}


on *:dialog:tracert:sclick:*:{
  if ($did = 5) {
    did -r $dname 4
    did -b $dname 5,6
    set %tracedata $did(2)
    did -a $dname 4 Tracerouting %tracedata $crlf
    .timerstucked 1 7 did -e $dname 6
    traceip
  }
  if ($did = 6) { unset %tracedata | .timerstucked off | sockclose whois }
}