code: def inet_aton(text):
      
  
      #
      # Our aim here is not something fast; we just want something that works.
      #
  
      if text == '::':
          text = '0::'
      #
      # Get rid of the icky dot-quad syntax if we have it.
      #
      m = _v4_ending.match(text)
      if not m is None:
          text = "%s:%04x:%04x" % (m.group(1),
                                   int(m.group(2)) * 256 + int(m.group(3)),
                                   int(m.group(4)) * 256 + int(m.group(5)))
      #
      # Try to turn '::<whatever>' into ':<whatever>'; if no match try to
      # turn '<whatever>::' into '<whatever>:'
      #
      m = _colon_colon_start.match(text)
      if not m is None:
          text = text[1:]
      else:
          m = _colon_colon_end.match(text)
          if not m is None:
              text = text[:-1]
      #
      # Now canonicalize into 8 chunks of 4 hex digits each
      #
      chunks = text.split(':')
      l = len(chunks)
      if l > 8:
          raise dns.exception.SyntaxError
      seen_empty = False
      canonical = []
      for c in chunks:
          if c == '':
              if seen_empty:
                  raise dns.exception.SyntaxError
              seen_empty = True
              for i in xrange(0, 8 - l + 1):
                  canonical.append('0000')
          else:
              lc = len(c)
              if lc > 4:
                  raise dns.exception.SyntaxError
              if lc != 4:
                  c = ('0' * (4 - lc)) + c
              canonical.append(c)
      if l < 8 and not seen_empty:
          raise dns.exception.SyntaxError
      text = ''.join(canonical)
  
      #
      # Finally we can go to binary.
      #
      try:
          return text.decode('hex_codec')
      except TypeError:
          raise dns.exception.SyntaxError
docs: Convert a text format IPv6 address into network format.
  
      @param text: the textual address
      @type text: string
      @rtype: string
      @raises dns.exception.SyntaxError: the text was not properly formatted