如何使用zeroconf?

我是否在命令行中运行它? 我是否将其作为GUI应用程序运行? 我认为它发现通过本地networking可用的资源,并分配地址的资源。 接下来发生什么? 这个信息是否写入了一些我可以通过其他应用程序读取的文件? 我可以将由zeroconf生成的地址放到浏览器的地址栏中,并到达Web服务器(在资源上运行Web服务器的情况下)吗?

通常,每台提供服务的机器都将运行Zeroconf守护程序,客户端将在networking上search。 例如,在这个Debian框中,有一个叫做avahi-daemon 。 为了宣传一个服务,一个程序与守护进程进行交谈。 一个简单的方法就是使用程序avahi-publish ,它使用守护进程注册一个服务:

 avahi-publish -s myservice _http._tcp 12345 "Here it is" 

在程序终止之前, avahi-browse会发现它:

 $ avahi-browse -t _http._tcp = eth0 IPv4 myservice Web Site local hostname = [mymachine.local] address = [192.168.1.123] port = [12345] txt = ["Here it is"] 

大多数时候你不想运行一个单独的程序来发布这个服务,所以你的守护进程会有一些代码来完成它。 这里有一些如何在Python中完成的很好的例子。 有一个简单的函数,你可以这样调用:

 # Downloaded from http://stackp.online.fr/?p=35 # Thanks to Pierre # from ZeroconfService import ZeroconfService import time service = ZeroconfService(name="Joe's awesome FTP server", port=3000, stype="_ftp._tcp") service.publish() 

同样,大多数情况下,您不必运行avahi浏览,因为您的浏览器可能会自己find这些东西。 例如,Safari可以在Mac上查找“Bonjour”菜单。

你也可以find使用zeroconf的机器。 我的机器可以使用.local域进行寻址:

 ssh mymachine.local 

即使机器不在DNS中也能工作。 非常有用的家庭networking!