Posted to tcl by mjanssen at Wed Jul 27 20:33:34 GMT 2011view pretty
%proc ip6parts {address} { # returns parts as a list or the empty list if address is not ipv6 set parts [split $address :] if {[llength $parts] != 8} {return {}} foreach part $parts { if {[regexp {^[[:xdigit:]]{1,4}$} $part]==0} {return {}} } return $parts } % ip6parts 2607:f098:10ff:0:1:45:ee:1 2607 f098 10ff 0 1 45 ee 1 % ip6parts 2607:f098:10ff:0:1:45:ee:2 2607 f098 10ff 0 1 45 ee 2 % ip6parts 2607:f098:10ff:0:1:45:ee:x %