Skip to content
Multicast DNS client for ruby! YAY!
Ruby C
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
ext/dnssd initialize variable to prevent segv
test get tests passing on linux
.autotest Oops, use correct hook
.gitignore Improve RDoc
History.txt Set release version and date
README.txt Update project URLs in README


= dnssd



DNS Service Discovery (aka Bonjour, MDNS) API for Ruby.  Implements browsing,
resolving, registration and domain enumeration.  Supports avahi's DNSSD
compatibility layer for avahi 0.6.25 or newer.


* Needs more pie.
* Not all of the DNSSD API is implemented
* Sometimes tests fail


See the sample directory (Hint: <tt>gem contents --prefix dnssd</tt>)

Registering a service:

  http = nil, 80
  DNSSD.announce http, 'my awesome HTTP server'

Browsing services:

  require 'dnssd'
  DNSSD.browse '_http._tcp.' do |reply|
    p reply


* OS X
* The dns-sd library on other operating systems
* avahi 0.6.25+ (plus libavahi-compat-libdnssd-dev on debian)


  sudo gem install dnssd

If you have dnssd installed in a non-standard location you can use the build
options --with-dnssd-dir and --with-dnssd-lib:

  sudo gem install dnssd -- \
    --with-dnssd-dir=/path/to/dnssd \

Using the default Bonjour SDK install for Windows, the command to build
the Ruby dnssd extension will look like this:

  # Windows 2000 or Windows XP
  sudo gem install dnssd -- \
     --with-dnssd-dir=c:/progra~1/bonjou~1 \
  # Windows Vista and later
  sudo gem install dnssd -- \
     --with-dnssd-dir=c:/progra~2/bonjou~1 \


Copyright (c) 2004 Chad Fowler, Charles Mills, Rich Kilmer

Copyright (c) 2009 Phil Hagelberg, Aaron Patterson, Eric Hodel

Licensed under the ruby license

Something went wrong with that request. Please try again.