Code:
alias makebinarystring { return $regsubex($1,/(.)/g,$asc(\t) $+ $chr(32)) }

dialog map {
  title "Network map"
  size -1 -1 300 300
  list 1, 0 0 300 300, size vsbar
}

raw 015:*:{ 
  bset &data 1 $makebinarystring($2-) 13 10
  bwrite $qt($scriptdir $+ map.dat) -1 -1 &data
  haltdef
}
raw 017:*:{
  if (!$dialog(map)) { dialog -m map map }
  did -r map 1
  loadbuf -o map 1 $qt($scriptdir $+ map.dat)
  .remove $qt($scriptdir $+ map.dat)
  haltdef
}


If those raw numerics are different on your network, just changing the numbers should work, unless the format differs as well. I tested that script on ircnet and it seems to work.

015 = server list of /map command
017 = end of /map