Class: Baffle::Gui
- Inherits:
-
Object
- Object
- Baffle::Gui
- Defined in:
- lib/baffle/gui.rb
Constant Summary collapse
- @@glade_path =
File.(File.join(File.dirname(__FILE__), 'gui.glade'))
Instance Method Summary collapse
-
#initialize(options) ⇒ Gui
constructor
A new instance of Gui.
- #on_load_clicked(widget) ⇒ Object
- #on_refresh_clicked(widget) ⇒ Object
- #on_remove_clicked(widget) ⇒ Object
- #on_scan_all_clicked(widget) ⇒ Object
- #on_scan_selected_clicked(widget) ⇒ Object
Constructor Details
#initialize(options) ⇒ Gui
Returns a new instance of Gui.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/baffle/gui.rb', line 15 def initialize() @glade = GladeXML.new(@@glade_path) { |handler| method(handler) } @options = @scan_lock = Mutex.new @window = @glade.('window') @window.signal_connect("destroy") { Gtk.main_quit } @mac_addresses = @glade.('mac_addresses') @mac_addresses.model = Gtk::ListStore.new(String) @mac_addresses.text_column = 0 @results = @glade.('results') on_refresh_clicked(@mac_addresses) end |
Instance Method Details
#on_load_clicked(widget) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/baffle/gui.rb', line 69 def on_load_clicked() dialog = Gtk::FileChooserDialog.new("Choose a Kismet CSV file", @window, Gtk::FileChooser::ACTION_OPEN, nil, [Gtk::Stock::OPEN, Gtk::Dialog::RESPONSE_ACCEPT], [Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL]) if dialog.run == Gtk::Dialog::RESPONSE_ACCEPT @mac_addresses.model.clear File.open(dialog.filename).each_line do |line| num, type, essid, bssid, rest = line.split(';') @mac_addresses.append_text("#{bssid} #{essid}") if type == 'infrastructure' && bssid =~ /^(([0-9a-fA-F]{2}[:]){5}[0-9a-fA-F]{2})$/ end @mac_addresses.active = 0 end dialog.destroy end |
#on_refresh_clicked(widget) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/baffle/gui.rb', line 32 def on_refresh_clicked() iwlist = `iwlist #{@options.capture} scan` essid = nil bssid = nil @mac_addresses.model.clear iwlist.each_line do |line| bssid = $1 if line =~ /Cell \d+ - Address: (([0-9a-fA-F]{2}[:]){5}[0-9a-fA-F]{2})/ essid = $1 if line =~ /ESSID:"([^"]+)"/ @mac_addresses.append_text("#{bssid} #{essid}") if essid essid = nil end @mac_addresses.active = 0 end |
#on_remove_clicked(widget) ⇒ Object
64 65 66 67 |
# File 'lib/baffle/gui.rb', line 64 def on_remove_clicked() @mac_addresses.remove_text(@mac_addresses.active) @mac_addresses.active = 0 end |
#on_scan_all_clicked(widget) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/baffle/gui.rb', line 57 def on_scan_all_clicked() @mac_addresses.model.each do |model, path, iter| args = parse(iter.get_value(0)) scan(*args) if args end end |
#on_scan_selected_clicked(widget) ⇒ Object
52 53 54 55 |
# File 'lib/baffle/gui.rb', line 52 def on_scan_selected_clicked() args = parse(@mac_addresses.active_text) scan(*args) if args end |