Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
find neighborhood hosts and services with avahi (multicast dns).
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
example
lib
test
.gitignore
Gemfile
LICENSE
README.md
Rakefile
findme.gemspec

README.md

findme

Find neighborhood host and services. fineme uses avahi-deamon and avahi-browse to discover and register services. Only works with ubuntu linux for now. (12.04 is tested working)

Install

sudo apt-get install avahi-utils avahi-daemon libnss-mdns
gem install findme

Enable normal user to use this gem (first time):

sudo chmod a+w /etc/avahi/services/

Example

require 'findme'
require 'pp'

puts Findme.discover.count.to_s + " Service discovered."
Findme.discover.each{|service| pp service.inspect}

More advanced Example

on server:

require 'findme'
Findme.cleanup
Findme.register "findme", 1337

on client -> client.rb:

require 'findme'

SERVICE = "findme"
services = Findme.discover
services.select{|s| s.service == "_#{SERVICE}._tcp"}.each{|s| puts "#{s.ip}:#{s.port}"}

on client discover latest and earliest -> client_earliest_latest.rb:

require 'findme'
require 'pp'

SERVICE = "findme"
h = Findme.discover_only_earliest
h.select{|k,s| s.service == "_#{SERVICE}._tcp"}.each{|k,s| puts "#{k}|#{s.ip}:#{s.port}:#{s.txt}"}


h = Findme.discover_only_latest
h.select{|k,s| s.service == "_#{SERVICE}._tcp"}.each{|k,s| puts "#{k}|#{s.ip}:#{s.port}:#{s.txt}"}

results on client.rb:

~ > ruby client.rb
fe80::a00:27ff:feeb:xxxx:1337
192.168.xx.xx:1337


 ~ > ruby client_earliest_latest.rb
 _findme._tcp|192.168.10.xxx:1337:"findme_startup_time=1346228166"
 _findme._tcp|192.168.10.yyy:1337:"findme_startup_time=1346229066"
Something went wrong with that request. Please try again.