code: def string_to_macaddr(value, strict=False):
      
      if is_undefined(value):
          if strict:
              raise ValueError('The value cannot be null')
          return None
  
      match = REGEX_MAC_ADDRESS.match(value.lower())
      if match is None:
          raise ValueError('The specified string "%s" does not represent a MAC address' % value)
  
      return match.groups()
docs: Return a tuple corresponding to the string representation of a Media
      Access Control address (MAC address) of a device, which is a unique
      identifier assigned to a network interface controller (NIC) for
      communications at the data link layer of a network segment.
  
      The standard (IEEE 802) format for printing EUI-48 addresses in human-
      friendly form is six groups of two hexadecimal digits, separated by
      hyphens (-) in transmission order (e.g. ``01-23-45-67-89-AB``).  This
      form is also commonly used for EUI-64 (e.g. ``01-23-45-67-89-AB-CD-EF``).
      Other conventions include six groups of two hexadecimal digits
      separated by colons (:) (e.g. 01:23:45:67:89:AB), and three groups of
      four hexadecimal digits separated by dots (.) (e.g. ``0123.4567.89AB``);
      again in transmission order.
  
  
      @param value: a string representation of a MAC address.
  
      @param strict: indicate whether the ``None`` value is accepted.
  
  
      @return: a tuple of 6 hexadecimal strings ``(hex1, hex2, hex3, hex4, hex5, hex6)``,
          each ranging from ``0x00`` to ``0xFF``.