Posted to tcl by kbk at Mon Dec 02 13:50:45 GMT 2013view pretty
set spec 192.168.1.0/28 regexp {(\d+)[.](\d+)[.](\d+)[.](\d+)/(\d+)} $spec -> b0 b1 b2 b3 size set quad [expr {($b0 << 24) | ($b1 << 16) | ($b2 << 8) | $b3}] for {set i 0} {$i < (1<<(32-$size))} {incr i} { set q2 [expr {$quad + $i}] set result [expr {$q2 & 0xff}] for {set j 0} {$j < 3} {incr j} { set q2 [expr {$q2 >> 8}] set result [expr {$q2 & 0xff}].$result } puts $result }