Sha256: ce4f4b4fff58b36d6b55e7aaacf47a49243d0f2d86b6e84f75cf29e6c7c549d0
Contents?: true
Size: 1.25 KB
Versions: 4
Compression:
Stored size: 1.25 KB
Contents
=begin rdoc Columbus Dns-sd lookup Server =end module Columbus class Server class << self attr_accessor :name, :description def announce(interface="vmnet8", t="_presence", proto="tcp", port=9419) @interface = interface while true do DNSSD.register(name, "#{t}._#{proto}", 'local', port, text_record.encode) do |rr| vprint "." end sleep(90) end end def text_record @text_record = DNSSD::TextRecord.new @text_record['description'] = @description || map_ip_to_interface[@interface] @text_record end def map_ip_to_interface(str=ifconfig) out = {} @current_interface = nil str.split("\n").collect do |line| iface = line.match(/^([a-zA-Z]+(\d)+)(:)?/) @current_interface = iface.captures.first.to_s if iface ip = line.match(/inet (addr:)?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/i) if ip && @current_interface ip = ip.captures.compact.to_s.gsub(/addr:/, '') out.merge!({@current_interface => ip}) end end out end def ifconfig %x{ifconfig} end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
auser-columbus-0.0.3 | lib/columbus/server.rb |
auser-columbus-0.0.4 | lib/columbus/server.rb |
auser-columbus-0.0.5 | lib/columbus/server.rb |
auser-columbus-0.0.6 | lib/columbus/server.rb |