<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def discover(ignore_list=[], max_wait=30, loop=None):
 """List STB in the network."""

    stbs = []
    try:
        async with timeout(max_wait, loop=loop):
            def responses_callback(notify):
                """Queue notify messages."""
                _LOGGER.debug("Found: %s", notify.ip_address)
                stbs.append(notify.ip_address)

            mr_protocol = await install_mediaroom_protocol(responses_callback=responses_callback)
            await asyncio.sleep(max_wait)
    except asyncio.TimeoutError:
        mr_protocol.close()
        _LOGGER.debug("discover() timeout!")

    return list(set([stb for stb in stbs if stb not in ignore_list]))