gpt4 book ai didi

python - 通过 Zeroconf/Bonjour 发布的最简单方法?

转载 作者:太空狗 更新时间:2023-10-29 17:13:31 46 4
gpt4 key购买 nike

我有一些应用程序,我想使用 zeroconf 使其可见。

  1. 是否有一种简单的脚本化方法可以做到这一点?
  2. 我的网络管理员需要做些什么才能启用此功能吗?

最好使用 Python 或 sh。欢迎针对 Linux 和 OS X 提出特定于操作系统的建议。

最佳答案

pybonjour 似乎没有得到积极维护。我正在使用 python-zeroconf .

pip install zeroconf

这是我用来宣布 Twisted-Autobahn WebSocket 的脚本的摘录到 iOS 设备:

from zeroconf import ServiceInfo, Zeroconf

class WebSocketManager(service.Service, object):
ws_service_name = 'Verasonics WebSocket'
wsPort = None
wsInfo = None

def __init__(self, factory, portCallback):
factory.protocol = BroadcastServerProtocol
self.factory = factory
self.portCallback = portCallback
self.zeroconf = Zeroconf()

def privilegedStartService(self):
self.wsPort = reactor.listenTCP(0, self.factory)
port = self.wsPort.getHost().port

fqdn = socket.gethostname()
ip_addr = socket.gethostbyname(fqdn)
hostname = fqdn.split('.')[0]

wsDesc = {'service': 'Verasonics Frame', 'version': '1.0.0'}
self.wsInfo = ServiceInfo('_verasonics-ws._tcp.local.',
hostname + ' ' + self.ws_service_name + '._verasonics-ws._tcp.local.',
socket.inet_aton(ip_addr), port, 0, 0,
wsDesc, hostname + '.local.')
self.zeroconf.register_service(self.wsInfo)
self.portCallback(port)

return super(WebSocketManager, self).privilegedStartService()

def stopService(self):
self.zeroconf.unregister_service(self.wsInfo)

self.wsPort.stopListening()
return super(WebSocketManager , self).stopService()

关于python - 通过 Zeroconf/Bonjour 发布的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1916017/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com