我已经有了一些应用程序,我想作可见,与零配置.

  1. 是有一个简单的可编写脚本的方式做到这一点?
  2. 有什么需要做的通过我的网络管理员,以使这个吗?

蟒蛇或sh会比较好.操作系统的具体建议表示欢迎Linux和OS X.

有帮助吗?

解决方案

或者你可以使用击:

dns-sd -R <Name> <Type> <Domain> <Port> [<TXT>...]

这一工作的默认OS X.对于其他*nixes,请参阅 用则表明发布 人页(你可能需要安装通过优包manager)。

其他提示

pybonjour似乎并不是积极的维护。我在使用 蟒蛇零配置.

pip install zeroconf

这里是摘自一个脚本用于宣布一个 扭曲-高速公路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()

我建议你 pybonjour.

通过 用则表明Python绑定的, 这很容易。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top