from netdisco.ssdp import scan
|
|
|
|
from .upnp import Device
|
|
from .util import _getLogger
|
|
|
|
|
|
def discover(timeout=5):
|
|
"""
|
|
Convenience method to discover UPnP devices on the network. Returns a
|
|
list of `upnp.Device` instances. Any invalid servers are silently
|
|
ignored.
|
|
"""
|
|
devices = {}
|
|
for entry in scan(timeout):
|
|
if entry.location in devices:
|
|
continue
|
|
try:
|
|
devices[entry.location] = Device(entry.location)
|
|
except Exception as exc:
|
|
log = _getLogger("ssdp")
|
|
log.error('Error \'%s\' for %s', exc, entry.location)
|
|
return list(devices.values())
|