Posted to tcl by mjanssen at Wed Jul 27 20:33:34 GMT 2011view raw

  1. %proc ip6parts {address} {
  2.  
  3. # returns parts as a list or the empty list if address is not ipv6
  4. set parts [split $address :]
  5. if {[llength $parts] != 8} {return {}}
  6. foreach part $parts {
  7. if {[regexp {^[[:xdigit:]]{1,4}$} $part]==0} {return {}}
  8. }
  9. return $parts
  10. }
  11. % ip6parts 2607:f098:10ff:0:1:45:ee:1
  12. 2607 f098 10ff 0 1 45 ee 1
  13. % ip6parts 2607:f098:10ff:0:1:45:ee:2
  14. 2607 f098 10ff 0 1 45 ee 2
  15. % ip6parts 2607:f098:10ff:0:1:45:ee:x
  16. %