跳转到主要内容

纯Python实现的组播DNS服务发现

项目描述

python-zeroconf

https://github.com/python-zeroconf/python-zeroconf/workflows/CI/badge.svg https://img.shields.io/pypi/v/zeroconf.svg https://codecov.io/gh/python-zeroconf/python-zeroconf/branch/master/graph/badge.svg

文档.

这是由Paul Scott-Murphy (https://github.com/paulsm/pyzeroconf) 创建的pyzeroconf的分支,用于Python的组播DNS服务发现,后来由William McBrine (https://github.com/wmcbrine/pyzeroconf) 修改。

William McBrine原始分支说明

This fork is used in all of my TiVo-related projects: HME for Python
(and therefore HME/VLC), Network Remote, Remote Proxy, and pyTivo.
Before this, I was tracking the changes for zeroconf.py in three
separate repos. I figured I should have an authoritative source.

Although I make changes based on my experience with TiVos, I expect that
they're generally applicable. This version also includes patches found
on the now-defunct (?) Launchpad repo of pyzeroconf, and elsewhere
around the net -- not always well-documented, sorry.

兼容性

  • Bonjour

  • Avahi

与某些其他Zeroconf/Bonjour/Avahi Python包相比,python-zeroconf

  • 不依赖于Bonjour或Avahi

  • 不使用D-Bus

  • 不强制使用特定的事件循环或Twisted(在内部使用asyncio,但不要求)

  • 可pip安装

  • 有PyPI发行版

  • 具有可选的Cython扩展以提高性能(也支持纯Python)

Python兼容性

  • CPython 3.8+

  • PyPy3.8 7.3+

版本管理

本项目使用语义版本控制。

状态

本项目正在积极维护。

流量减少

在版本0.32之前,没有实现https://datatracker.ietf.org/doc/html/rfc6762#section-7中描述的大多数流量减少技术,这可能导致过多的网络流量。如果这成为问题,强烈建议使用版本0.32或更高版本。

IPv6支持

IPv6支持相对较新,目前有限,具体如下

  • InterfaceChoice.All在非POSIX系统上是InterfaceChoice.Default的别名。

  • 使用双栈IPv6套接字,可能并非所有地方都支持(一些BSD变体没有这些)。

  • 监听localhost (::1) 不起作用。理解原因的任何帮助都受欢迎。

如何获取python-zeroconf?

安装python-zeroconf最简单的方法是使用pip

pip install zeroconf

如何使用它?

以下是一个浏览服务的示例

from zeroconf import ServiceBrowser, ServiceListener, Zeroconf


class MyListener(ServiceListener):

    def update_service(self, zc: Zeroconf, type_: str, name: str) -> None:
        print(f"Service {name} updated")

    def remove_service(self, zc: Zeroconf, type_: str, name: str) -> None:
        print(f"Service {name} removed")

    def add_service(self, zc: Zeroconf, type_: str, name: str) -> None:
        info = zc.get_service_info(type_, name)
        print(f"Service {name} added, service info: {info}")


zeroconf = Zeroconf()
listener = MyListener()
browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
try:
    input("Press enter to exit...\n\n")
finally:
    zeroconf.close()

如果您不知道要浏览的服务名称,请尝试

from zeroconf import ZeroconfServiceTypes
print('\n'.join(ZeroconfServiceTypes.find()))

更多示例请参阅示例目录。

变更日志

变更日志

许可证

LGPL,请参阅COPYING文件以获取详细信息。

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源分布

zeroconf-0.135.0.tar.gz (171.9 kB 查看哈希值)

上传时间

构建分布

zeroconf-0.135.0-pp310-pypy310_pp73-win_amd64.whl (4.6 MB 查看哈希值)

上传时间 PyPy Windows x86-64

zeroconf-0.135.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (4.9 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-pp310-pypy310_pp73-macosx_14_0_arm64.whl (4.5 MB 查看哈希值)

上传时间: PyPy macOS 14.0+ ARM64

zeroconf-0.135.0-pp310-pypy310_pp73-macosx_12_0_x86_64.whl (4.6 MB 查看哈希值)

上传时间: PyPy macOS 12.0+ x86-64

zeroconf-0.135.0-pp39-pypy39_pp73-win_amd64.whl (4.6 MB 查看哈希值)

上传时间: PyPy Windows x86-64

zeroconf-0.135.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (4.9 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-pp39-pypy39_pp73-macosx_14_0_arm64.whl (4.5 MB 查看哈希值)

上传时间: PyPy macOS 14.0+ ARM64

zeroconf-0.135.0-pp39-pypy39_pp73-macosx_12_0_x86_64.whl (4.6 MB 查看哈希值)

上传时间: PyPy macOS 12.0+ x86-64

zeroconf-0.135.0-pp38-pypy38_pp73-win_amd64.whl (4.6 MB 查看哈希值)

上传时间: PyPy Windows x86-64

zeroconf-0.135.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (5.0 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-pp38-pypy38_pp73-macosx_14_0_arm64.whl (4.5 MB 查看哈希值)

上传于 PyPy macOS 14.0+ ARM64

zeroconf-0.135.0-pp38-pypy38_pp73-macosx_12_0_x86_64.whl (4.6 MB 查看哈希值)

上传于 PyPy macOS 12.0+ x86-64

zeroconf-0.135.0-cp313-cp313-win_amd64.whl (4.7 MB 查看哈希值)

上传于 CPython 3.13 Windows x86-64

zeroconf-0.135.0-cp313-cp313-win32.whl (4.5 MB 查看哈希值)

上传于 CPython 3.13 Windows x86

zeroconf-0.135.0-cp313-cp313-musllinux_1_2_x86_64.whl (14.5 MB 查看哈希值)

上传于 CPython 3.13 musllinux: musl 1.2+ x86-64

zeroconf-0.135.0-cp313-cp313-musllinux_1_2_i686.whl (14.0 MB 查看哈希值)

上传于 CPython 3.13 musllinux: musl 1.2+ i686

zeroconf-0.135.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.1 MB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-cp313-cp313-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (13.5 MB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.0 MB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ ARM64

zeroconf-0.135.0-cp313-cp313-macosx_14_0_arm64.whl (4.8 MB 查看哈希值)

上传于 CPython 3.13 macOS 14.0+ ARM64

zeroconf-0.135.0-cp313-cp313-macosx_12_0_x86_64.whl (5.0 MB 查看哈希值)

上传时间 CPython 3.13 macOS 12.0+ x86-64

zeroconf-0.135.0-cp312-cp312-win_amd64.whl (4.7 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

zeroconf-0.135.0-cp312-cp312-win32.whl (4.5 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86

zeroconf-0.135.0-cp312-cp312-musllinux_1_2_x86_64.whl (14.6 MB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ x86-64

zeroconf-0.135.0-cp312-cp312-musllinux_1_2_i686.whl (14.1 MB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ i686

zeroconf-0.135.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.2 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-cp312-cp312-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (13.6 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.1 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

zeroconf-0.135.0-cp312-cp312-macosx_14_0_arm64.whl (4.8 MB 查看哈希值)

上传时间 CPython 3.12 macOS 14.0+ ARM64

zeroconf-0.135.0-cp312-cp312-macosx_12_0_x86_64.whl (5.0 MB 查看哈希值)

上传时间 CPython 3.12 macOS 12.0+ x86-64

zeroconf-0.135.0-cp311-cp311-win_amd64.whl (4.7 MB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

zeroconf-0.135.0-cp311-cp311-win32.whl (4.5 MB 查看哈希值)

上传于 CPython 3.11 Windows x86

zeroconf-0.135.0-cp311-cp311-musllinux_1_2_x86_64.whl (14.8 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ x86-64

zeroconf-0.135.0-cp311-cp311-musllinux_1_2_i686.whl (14.3 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ i686

zeroconf-0.135.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.4 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-cp311-cp311-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (13.9 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.3 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

zeroconf-0.135.0-cp311-cp311-macosx_14_0_arm64.whl (4.8 MB 查看哈希值)

上传于 CPython 3.11 macOS 14.0+ ARM64

zeroconf-0.135.0-cp311-cp311-macosx_12_0_x86_64.whl (5.0 MB 查看哈希值)

上传于 CPython 3.11 macOS 12.0+ x86-64

zeroconf-0.135.0-cp310-cp310-win_amd64.whl (4.7 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

zeroconf-0.135.0-cp310-cp310-win32.whl (4.5 MB 查看哈希值)

上传于 CPython 3.10 Windows x86

zeroconf-0.135.0-cp310-cp310-musllinux_1_2_x86_64.whl (13.6 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ x86-64

zeroconf-0.135.0-cp310-cp310-musllinux_1_2_i686.whl (13.2 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ i686

zeroconf-0.135.0-cp310-cp310-manylinux_2_31_x86_64.whl (10.4 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.31+ x86-64

zeroconf-0.135.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.5 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-cp310-cp310-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (13.0 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-cp310-cp310-macosx_14_0_arm64.whl (4.8 MB 查看哈希值)

上传于 CPython 3.10 macOS 14.0+ ARM64

zeroconf-0.135.0-cp310-cp310-macosx_12_0_x86_64.whl (5.0 MB 查看哈希值)

上传于 CPython 3.10 macOS 12.0+ x86-64

zeroconf-0.135.0-cp39-cp39-win_amd64.whl (4.7 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

zeroconf-0.135.0-cp39-cp39-win32.whl (4.5 MB 查看哈希值)

上传于 CPython 3.9 Windows x86

zeroconf-0.135.0-cp39-cp39-musllinux_1_2_x86_64.whl (13.6 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ x86-64

zeroconf-0.135.0-cp39-cp39-musllinux_1_2_i686.whl (13.3 MB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.2+ i686

zeroconf-0.135.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.5 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-cp39-cp39-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (13.0 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-cp39-cp39-macosx_14_0_arm64.whl (1.8 MB 查看哈希值)

上传时间: CPython 3.9 macOS 14.0+ ARM64

zeroconf-0.135.0-cp39-cp39-macosx_12_0_x86_64.whl (5.0 MB 查看哈希值)

上传时间: CPython 3.9 macOS 12.0+ x86-64

zeroconf-0.135.0-cp38-cp38-win_amd64.whl (4.7 MB 查看哈希值)

上传时间: CPython 3.8 Windows x86-64

zeroconf-0.135.0-cp38-cp38-win32.whl (1.4 MB 查看哈希值)

上传时间: CPython 3.8 Windows x86

zeroconf-0.135.0-cp38-cp38-musllinux_1_2_x86_64.whl (10.9 MB 查看哈希值)

上传时间: CPython 3.8 musllinux: musl 1.2+ x86-64

zeroconf-0.135.0-cp38-cp38-musllinux_1_2_i686.whl (10.5 MB 查看哈希值)

上传时间: CPython 3.8 musllinux: musl 1.2+ i686

zeroconf-0.135.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.7 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ x86-64

zeroconf-0.135.0-cp38-cp38-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (10.2 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zeroconf-0.135.0-cp38-cp38-macosx_12_0_x86_64.whl (2.0 MB 查看哈希值)

上传时间 CPython 3.8 macOS 12.0+ x86-64

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面