Class: LogSimulator::Resolver
- Inherits:
-
Object
- Object
- LogSimulator::Resolver
- Defined in:
- lib/resolve.rb
Class Method Summary collapse
Class Method Details
.resolve_service(scan_time) {|found_targets| ... } ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/resolve.rb', line 54 def self.resolve_service(scan_time) browser = DNSSD::Service.new service_name = '_debugConnection._tcp' puts "Browsing for #{service_name}" found_targets = [] Thread.new do browser.browse service_name do |reply| Thread.new do Thread.exclusive do resolver = DNSSD::Service.new resolver.resolve reply do |r| found_targets<<Target.new(r.name,r.target,r.port) break unless r.flags.more_coming? end end end end end sleep scan_time found_targets.uniq! yield found_targets end |
.select_target(scan_time) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/resolve.rb', line 30 def self.select_target(scan_time) self.resolve_service(scan_time) do |found_targets| if found_targets.count <= 0 puts 'no possible target found!' elsif found_targets.count == 1 target = found_targets[0] yield target else puts 'Which one to connect?' found_targets.each_with_index do |target,index| puts "#{index+1}. #{target.name} - #{target.target_name}: #{target.port}" end puts 'Select: ' selection = gets.chomp.to_i - 1 while(selection < 0 || selection >= found_targets.count) puts "Select between #{0}-#{found_targets.count}" selection = gets.chomp.to_i - 1 end yield found_targets[selection] end end end |