def get_hosts_info(fritz_connection):
    """
    Returns a list of dicts with information about the known hosts.
    The dict-keys are: 'ip', 'name', 'mac', 'status'
    """
    result = []
    index = 0
    while index < int(fritz_connection.call_action(service_name='Hosts1', action_name='GetHostNumberOfEntries')['NewHostNumberOfEntries']):
        host = fritz_connection.call_action(service_name='Hosts1', action_name='GetGenericHostEntry', NewIndex=index)
        result.append({
            'ip': host['NewIPAddress'],
            'name': host['NewHostName'],
            'mac': host['NewMACAddress'],
            'status': host['NewActive']})
        index += 1
    return result