code: def mac_to_ipv6_linklocal(mac,prefix="fe80::"):
      
  
      # Remove the most common delimiters; dots, dashes, etc.
      mac_value = int(mac.translate(str.maketrans(dict([(x,None) for x in [" ",".",":","-"]]))),16)
      # Split out the bytes that slot into the IPv6 address
      # XOR the most significant byte with 0x02, inverting the
      # Universal / Local bit
      high2 = mac_value >> 32 & 0xffff ^ 0x0200
      high1 = mac_value >> 24 & 0xff
      low1 = mac_value >> 16 & 0xff
      low2 = mac_value & 0xffff
      return prefix+':{:04x}:{:02x}ff:fe{:02x}:{:04x}'.format(
          high2, high1, low1, low2)
docs: Translate a MAC address into an IPv6 address in the prefixed network.
  
      This function calculates the EUI (Extended Unique Identifier) from the given
      MAC address and prepend the needed prefix to come up with a valid IPv6 address.
      The default prefix is the link local prefix defined by RFC 4291 .
  
          :param mac: the mac address of the device
          :type mac: str
          :param prefix: the IPv6 network prefix
          :type prefix: str
          :returns: IPv6 address
          :rtype: str