发现本地网络上的设备
netdisco的Python项目详细描述
NetDisco
netdisco是一个python 3库,用于发现本地设备和服务。它允许按需扫描或提供一项服务,该服务将在设置的时间间隔内在后台扫描网络。
当前扫描方法:
- MDN(包括Chromecast、HomeKit)
- UPNP
- 使用良好的日常伴侣协议的Plex媒体服务器
- Logitech媒体服务器发现协议
- Daikin发现协议
- Web OS发现协议
是库在Home Assistant中驱动设备发现。
我们不再接受实现自定义发现协议的prs。仅支持使用mdns或upnp的prs。见this issue
安装
PYPI上提供NetDisco。使用pip3 install netdisco
安装。
示例
从命令行:
python3 -m netdisco
# To see all raw data:
python3 -m netdisco dump
在您的脚本中:
fromnetdisco.discoveryimportNetworkDiscoverynetdis=NetworkDiscovery()netdis.scan()fordevinnetdis.discover():print(dev,netdis.get_info(dev))netdis.stop()
将生成已发现设备及其最重要信息的列表:
DLNA ['http://192.168.1.1:8200/rootDesc.xml', 'http://192.168.1.150:32469/DeviceDescription.xml']
google_cast [('Living Room.local.', 8009)]
philips_hue ['http://192.168.1.2:80/description.xml']
belkin_wemo ['http://192.168.1.10:49153/setup.xml']