use bio for ndb/query's output. this is a significant help with only 20ms lag between terminal and cpu; makes a very large difference even at 3ms for intensive scripted queries. e.g. (sorry, this is my version of rc that has "break". i'm also assuming a class C network. you get the point.) #!/usr/quanstro/bin/386/rc rfork e net = `{ndb/query ipnet $site ip |sed s:\.0::g} aflag = 0 vflag = 0 for(i) switch($1){ case -a aflag = 1; shift; case -v aflag = 1; vflag = 1; shift case * echo 'usage: freeip [-a] [-v]'>[1=2] exit usage } for(i in `{seq 1 253}){ r = `{ndb/query ip $net^.$i ip} q = `{ndb/query 10gip $net^.$i 10gip} # it's illegal to have a duplicate ip and 10gip, unless # the host is the same. all=($r $q) if(! ~ $#all 0 1){ a = `{ndb/query ip $net^.$i sys} b = `{ndb/query 10gip $net^.$i sys} if(! ~ $#a 1 && ! ~ $"a $"b){ echo error $net^.$i >[1=2] echo ' ' ip ' ' $a>[1=2] echo ' ' 10gip ' ' $b>[1=2] } } if(~ $vflag 0) if(! ~ $r ?* && ! ~ $q ?*){ echo $net^.$i if (~ $aflag 0) break } }