Exemple #1
0
def test_private_addresses(mock_address):
    mock_address("wlan0", "10.0.0.1")
    mock_address("lo", "127.0.0.1")

    assert get_private_addresses(include_loopback=False) == [
        ip_address("10.0.0.1"),
    ]
Exemple #2
0
async def multicast(
    loop: asyncio.AbstractEventLoop,
    services: typing.List[str],
    address: str = "224.0.0.251",
    port: int = 5353,
    timeout: int = 4,
    end_condition: typing.Optional[typing.Callable[[Response], bool]] = None,
) -> typing.Dict[IPv4Address, Response]:
    """Send multicast request for services."""
    protocol = MulticastDnsSdClientProtocol(
        loop, services, address, port, end_condition
    )

    # Socket listening on 5353 from anywhere
    await protocol.add_socket(net.mcast_socket(None, 5353))

    # One socket per local IP address
    for addr in net.get_private_addresses():
        try:
            await protocol.add_socket(net.mcast_socket(str(addr)))
        except Exception:  # pylint: disable=broad-except
            _LOGGER.exception(f"failed to add listener for {addr}")

    return await typing.cast(MulticastDnsSdClientProtocol, protocol).get_response(
        timeout
    )
Exemple #3
0
def test_private_addresses(mock_address):
    mock_address("wlan0", "10.0.0.1")
    mock_address("eth0", "192.168.0.1")
    mock_address("eth1", "172.16.0.1")

    assert get_private_addresses() == [
        ip_address("10.0.0.1"),
        ip_address("192.168.0.1"),
        ip_address("172.16.0.1"),
    ]
Exemple #4
0
async def multicast(
    loop: asyncio.AbstractEventLoop,
    services: List[str],
    address: str = "224.0.0.251",
    port: int = 5353,
    timeout: int = 4,
) -> Dict[IPv4Address, Response]:
    """Send multicast request for services."""
    protocol = MulticastDnsSdClientProtocol(loop, services, address, port)

    # Socket listening on 5353 from anywhere
    await protocol.add_socket(net.mcast_socket(None, 5353))

    # One socket per local IP address
    for addr in net.get_private_addresses():
        try:
            await protocol.add_socket(net.mcast_socket(str(addr)))
        except Exception:
            _LOGGER.exception(f"failed to add listener for {addr}")

    return await cast(MulticastDnsSdClientProtocol, protocol).get_response(timeout)
Exemple #5
0
def test_localhost(mock_address):
    mock_address("eth0", "127.0.0.1")
    assert get_private_addresses() == [IPv4Address("127.0.0.1")]
Exemple #6
0
def test_public_addresses(mock_address):
    mock_address("eth0", "1.2.3.4")
    mock_address("eth1", "8.8.8.8")
    assert get_private_addresses() == []
Exemple #7
0
def test_no_address():
    assert get_private_addresses() == []
Exemple #8
0
def _get_zeroconf_addresses(
        addresses: Optional[List[str]]) -> List[IPv4Address]:
    if addresses is None:
        return list(get_private_addresses(include_loopback=False))

    return [IPv4Address(address) for address in addresses]