Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Do I run it in a command line? Do I run it as a GUI application? I think it discovers resources available through a local network and assigns addresses to the resources. What happens next? Is this information written to some file which I can read by other application? Can I put addresses generated by zeroconf into the address line of my browser and reach the web server (under condition that a web server is running on the resource)?

share|improve this question

Typically each machine that offers a service will run a Zeroconf daemon, and clients will search for that on the network. On this Debian box, for instance, there's a process called avahi-daemon. To advertise a service, a program talks to the daemon. An easy way to do that is with the program avahi-publish, which registers a service with the daemon:

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

Until that program terminates, avahi-browse will find it:

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

Most of the time you won't want to run a separate program just to publish the service, so your daemon will have a bit of code to do it. Here are some nice examples of how to do it in Python. There's a simple function which you call like this:

# Downloaded from
# Thanks to Pierre
from ZeroconfService import ZeroconfService
import time

service = ZeroconfService(name="Joe's awesome FTP server",
                          port=3000,  stype="_ftp._tcp")

Again, most of the time you don't have to run avahi-browse, because your browser can probably find these things for itself. Safari can on the Mac, for example - look for the "Bonjour" menu.

You can also find machines using zeroconf. My machine is addressible using the .local domain:

ssh mymachine.local

will work even if the machine isn't in DNS. Very useful for a home network!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.