Extracts the IPv6 address for a particular interface from `ifconfig`.

    :param interface_name: Name of the network interface (e.g. ``eth0``).
    :type interface_name: unicode
    :param expand: If set to ``True``, an abbreviated address is expanded to the full address.
    :type expand: bool
    :return: IPv6 address; ``None`` if the interface is present but no address could be extracted.
    :rtype: unicode

def get_ip6_address(interface_name, expand=False):
    """
    Extracts the IPv6 address for a particular interface from `ifconfig`.

    :param interface_name: Name of the network interface (e.g. ``eth0``).
    :type interface_name: unicode
    :param expand: If set to ``True``, an abbreviated address is expanded to the full address.
    :type expand: bool
    :return: IPv6 address; ``None`` if the interface is present but no address could be extracted.
    :rtype: unicode
    """
    address = _get_address(interface_name, IP6_PATTERN)
    if address and expand:
        return ':'.join(_expand_groups(address))
    return address