发现本地网络上的设备

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']

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在另一个承诺中解决一个承诺?   java验证字符串输入   如何在Java中将数组转换为链表   配置Logstash以从socket接收数据,并将其插入java中的Elasticsearch   swing构建在Java中以相同顺序运行的JFrame   java什么是工具箱的正确路径。getImage()?   java springbootgradleplugin是否随springboot版本一起移动?   升级gradle插件后,java gradle项目同步仍失败   java CXF服务调用失败,出现意外命名空间上的解组错误   Javaservlet。servlet ctakesrestservice的init()引发异常   java我需要什么正则表达式来读取这个值'12,'   java如何使用Xstream在现有xml文件中导入带有节点的字符串?   基于特殊字符的java子串   java hibernate从查询创建通用对象