Exemplo n.º 1
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox()

        self.__cartesian_radio = gtk.RadioButton(None, _("Cartesian"))
        self.__polar_radio = gtk.RadioButton(self.__cartesian_radio,
                                             _("Polar"))
        self.__cartesian_radio.connect('toggled', self.__change_system,
                                       INTERPOLATION_CARTESIAN)
        self.__polar_radio.connect('toggled', self.__change_system,
                                   INTERPOLATION_POLAR)

        self.__system_box = bw.BWHBox()
        self.__system_box.bw_pack_start_noexpand_nofill(self.__polar_radio)
        self.__system_box.bw_pack_start_noexpand_nofill(self.__cartesian_radio)

        self.__frames_box = bw.BWHBox()
        self.__frames_label = gtk.Label(_("Frames"))
        self.__frames_label.set_alignment(0.0, 0.5)
        self.__frames = gtk.Adjustment(self.radialnet.get_number_of_frames(),
                                       1, 1000, 1)
        self.__frames.connect('value_changed', self.__change_frames)
        self.__frames_spin = gtk.SpinButton(self.__frames)
        self.__frames_box.bw_pack_start_expand_fill(self.__frames_label)
        self.__frames_box.bw_pack_start_noexpand_nofill(self.__frames_spin)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__frames_box)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__system_box)

        self.bw_add(self.__vbox)

        gobject.timeout_add(REFRESH_RATE, self.__update_animation)
Exemplo n.º 2
0
    def __create_widgets(self):
        """
        """
        # create body elements
        self.__services_page = ServicesPage(self.__node)
        self.__system_page = SystemPage(self.__node)
        self.__trace_page = TraceroutePage(self.__node)

        # packing notebook elements
        self.append_page(self.__system_page, bw.BWLabel(_("General")))
        self.append_page(self.__services_page, bw.BWLabel(_("Services")))
        self.append_page(self.__trace_page, bw.BWLabel(_("Traceroute")))
Exemplo n.º 3
0
    def __create_widgets(self):
        """
        """
        # create body elements
        self.__services_page = ServicesPage(self.__node)
        self.__system_page = SystemPage(self.__node)
        self.__trace_page = TraceroutePage(self.__node)

        # packing notebook elements
        self.append_page(self.__system_page, bw.BWLabel(_("General")))
        self.append_page(self.__services_page, bw.BWLabel(_("Services")))
        self.append_page(self.__trace_page, bw.BWLabel(_("Traceroute")))
Exemplo n.º 4
0
    def __init__(self, radialnet):
        """
        """
        bw.BWExpander.__init__(self, _("Interpolation"))

        self.radialnet = radialnet

        self.__create_widgets()
Exemplo n.º 5
0
    def __init__(self, radialnet):
        """
        """
        bw.BWExpander.__init__(self, _("Layout"))

        self.radialnet = radialnet

        self.__create_widgets()
Exemplo n.º 6
0
    def __init__(self, radialnet):
        """
        """
        bw.BWExpander.__init__(self, _("Interpolation"))

        self.radialnet = radialnet

        self.__create_widgets()
Exemplo n.º 7
0
    def __init__(self, radialnet):
        """
        """
        bw.BWExpander.__init__(self, _("Layout"))

        self.radialnet = radialnet

        self.__create_widgets()
Exemplo n.º 8
0
    def __create_widgets(self):
        """
        """
        self.__params = bw.BWHBox()

        self.__fisheye_label = gtk.Label(_("<b>Fisheye</b> on ring"))
        self.__fisheye_label.set_use_markup(True)

        self.__ring = gtk.Adjustment(0, 0, self.__ring_max_value, 0.01, 0.01)

        self.__ring_spin = gtk.SpinButton(self.__ring)
        self.__ring_spin.set_digits(2)

        self.__ring_scale = gtk.HScale(self.__ring)
        self.__ring_scale.set_size_request(100, -1)
        self.__ring_scale.set_digits(2)
        self.__ring_scale.set_value_pos(gtk.POS_LEFT)
        self.__ring_scale.set_draw_value(False)
        self.__ring_scale.set_update_policy(gtk.UPDATE_CONTINUOUS)

        self.__interest_label = gtk.Label(_("with interest factor"))
        self.__interest = gtk.Adjustment(0, 0, 10, 0.01)
        self.__interest_spin = gtk.SpinButton(self.__interest)
        self.__interest_spin.set_digits(2)

        self.__spread_label = gtk.Label(_("and spread factor"))
        self.__spread = gtk.Adjustment(0, -1.0, 1.0, 0.01, 0.01)
        self.__spread_spin = gtk.SpinButton(self.__spread)
        self.__spread_spin.set_digits(2)

        self.__params.bw_pack_start_noexpand_nofill(self.__fisheye_label)
        self.__params.bw_pack_start_noexpand_nofill(self.__ring_spin)
        self.__params.bw_pack_start_expand_fill(self.__ring_scale)
        self.__params.bw_pack_start_noexpand_nofill(self.__interest_label)
        self.__params.bw_pack_start_noexpand_nofill(self.__interest_spin)
        self.__params.bw_pack_start_noexpand_nofill(self.__spread_label)
        self.__params.bw_pack_start_noexpand_nofill(self.__spread_spin)

        self.bw_pack_start_noexpand_nofill(self.__params)

        self.__ring.connect('value_changed', self.__change_ring)
        self.__interest.connect('value_changed', self.__change_interest)
        self.__spread.connect('value_changed', self.__change_spread)

        gobject.timeout_add(REFRESH_RATE, self.__update_fisheye)
Exemplo n.º 9
0
    def __create_widgets(self):
        """
        """
        self.__params = bw.BWHBox()

        self.__fisheye_label = gtk.Label(_("<b>Fisheye</b> on ring"))
        self.__fisheye_label.set_use_markup(True)

        self.__ring = gtk.Adjustment(0, 0, self.__ring_max_value, 0.01, 0.01)

        self.__ring_spin = gtk.SpinButton(self.__ring)
        self.__ring_spin.set_digits(2)

        self.__ring_scale = gtk.HScale(self.__ring)
        self.__ring_scale.set_size_request(100, -1)
        self.__ring_scale.set_digits(2)
        self.__ring_scale.set_value_pos(gtk.POS_LEFT)
        self.__ring_scale.set_draw_value(False)
        self.__ring_scale.set_update_policy(gtk.UPDATE_CONTINUOUS)

        self.__interest_label = gtk.Label(_("with interest factor"))
        self.__interest = gtk.Adjustment(0, 0, 10, 0.01)
        self.__interest_spin = gtk.SpinButton(self.__interest)
        self.__interest_spin.set_digits(2)

        self.__spread_label = gtk.Label(_("and spread factor"))
        self.__spread = gtk.Adjustment(0, -1.0, 1.0, 0.01, 0.01)
        self.__spread_spin = gtk.SpinButton(self.__spread)
        self.__spread_spin.set_digits(2)

        self.__params.bw_pack_start_noexpand_nofill(self.__fisheye_label)
        self.__params.bw_pack_start_noexpand_nofill(self.__ring_spin)
        self.__params.bw_pack_start_expand_fill(self.__ring_scale)
        self.__params.bw_pack_start_noexpand_nofill(self.__interest_label)
        self.__params.bw_pack_start_noexpand_nofill(self.__interest_spin)
        self.__params.bw_pack_start_noexpand_nofill(self.__spread_label)
        self.__params.bw_pack_start_noexpand_nofill(self.__spread_spin)

        self.bw_pack_start_noexpand_nofill(self.__params)

        self.__ring.connect('value_changed', self.__change_ring)
        self.__interest.connect('value_changed', self.__change_interest)
        self.__spread.connect('value_changed', self.__change_spread)

        gobject.timeout_add(REFRESH_RATE, self.__update_fisheye)
Exemplo n.º 10
0
    def __init__(self, radialnet):
        """
        """
        bw.BWExpander.__init__(self, _("View"))
        self.set_expanded(True)

        self.radialnet = radialnet

        self.__create_widgets()
Exemplo n.º 11
0
    def __init__(self, radialnet):
        """
        """
        bw.BWExpander.__init__(self, _("View"))
        self.set_expanded(True)

        self.radialnet = radialnet

        self.__create_widgets()
Exemplo n.º 12
0
    def __create_widgets(self):
        """
        """
        self.__hbox = bw.BWHBox()

        self.__layout = gtk.combo_box_new_text()
        self.__layout.append_text(_("Symmetric"))
        self.__layout.append_text(_("Weighted"))
        self.__layout.set_active(self.radialnet.get_layout())
        self.__layout.connect('changed', self.__change_layout)
        self.__force = gtk.ToolButton(gtk.STOCK_REFRESH)
        self.__force.connect('clicked', self.__force_update)

        self.__hbox.bw_pack_start_expand_fill(self.__layout)
        self.__hbox.bw_pack_start_noexpand_nofill(self.__force)

        self.bw_add(self.__hbox)

        self.__check_layout()
Exemplo n.º 13
0
    def __create_widgets(self):
        """
        """
        self.__hbox = bw.BWHBox()

        self.__layout = gtk.combo_box_new_text()
        self.__layout.append_text(_("Symmetric"))
        self.__layout.append_text(_("Weighted"))
        self.__layout.set_active(self.radialnet.get_layout())
        self.__layout.connect('changed', self.__change_layout)
        self.__force = gtk.ToolButton(gtk.STOCK_REFRESH)
        self.__force.connect('clicked', self.__force_update)

        self.__hbox.bw_pack_start_expand_fill(self.__layout)
        self.__hbox.bw_pack_start_noexpand_nofill(self.__force)

        self.bw_add(self.__hbox)

        self.__check_layout()
Exemplo n.º 14
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox()
        self.__frame = bw.BWFrame(_("Scan form:"))
        self.__toolbar = ScanToolbar(self)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__toolbar)
        self.__vbox.bw_pack_start_expand_fill(self.__frame)

        self.add(self.__vbox)
Exemplo n.º 15
0
    def __create_widgets(self):
        """
        """
        self.__radius = ControlVariable(_("Ring gap"),
                                        self.radialnet.get_ring_gap,
                                        self.radialnet.set_ring_gap)

        self.__label = gtk.Label(_("Lower ring gap"))
        self.__label.set_alignment(0.0, 0.5)
        self.__adjustment = gtk.Adjustment(self.radialnet.get_min_ring_gap(),
                                           0, 50, 1)
        self.__spin = gtk.SpinButton(self.__adjustment)
        self.__spin.connect('value_changed', self.__change_lower)

        self.__lower_hbox = bw.BWHBox()
        self.__lower_hbox.bw_pack_start_expand_fill(self.__label)
        self.__lower_hbox.bw_pack_start_noexpand_nofill(self.__spin)

        self.bw_pack_start_noexpand_nofill(self.__radius)
        self.bw_pack_start_noexpand_nofill(self.__lower_hbox)
Exemplo n.º 16
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox()
        self.__frame = bw.BWFrame(_("Scan form:"))
        self.__toolbar = ScanToolbar(self)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__toolbar)
        self.__vbox.bw_pack_start_expand_fill(self.__frame)

        self.add(self.__vbox)
Exemplo n.º 17
0
    def __create_items(self):
        """
        """
        self.__hosts = gtk.ImageMenuItem(_("Hosts viewer"))
        self.__hosts.connect("activate", self.__hosts_viewer_callback)
        self.__hosts_image = gtk.Image()
        self.__hosts_image.set_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_MENU)
        self.__hosts.set_image(self.__hosts_image)

        self.append(self.__hosts)

        self.__hosts.show_all()
Exemplo n.º 18
0
    def __open_callback(self, widget=None):
        """
        """
        self.__chooser = gtk.FileChooserDialog(_("Open a Nmap XML file"), None,
                                               gtk.FILE_CHOOSER_ACTION_OPEN,
                                               FILE_CHOOSER_BUTTONS)
        self.__chooser.set_keep_above(True)

        if self.__chooser.run() == gtk.RESPONSE_OK:
            self.__window.parse_nmap_xml_file(self.__chooser.get_filename())

        self.__chooser.destroy()
Exemplo n.º 19
0
    def __create_items(self):
        """
        """
        self.__hosts = gtk.ImageMenuItem(_("Hosts viewer"))
        self.__hosts.connect("activate", self.__hosts_viewer_callback)
        self.__hosts_image = gtk.Image()
        self.__hosts_image.set_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_MENU)
        self.__hosts.set_image(self.__hosts_image)

        self.append(self.__hosts)

        self.__hosts.show_all()
Exemplo n.º 20
0
    def __init__(self, nodes):
        """
        """
        bw.BWMainWindow.__init__(self)
        self.set_title(_("Hosts Viewer"))
        self.set_default_size(DIMENSION[0], DIMENSION[1])

        self.set_position(gtk.WIN_POS_CENTER)

        self.__nodes = nodes
        self.__view = None

        self.__create_widgets()
Exemplo n.º 21
0
    def __init__(self, window):
        """
        """
        bw.BWMainWindow.__init__(self)
        self.set_title(_("Scan"))
        self.set_default_size(DIMENSION[0], DIMENSION[1])

        self.__backend = None
        self.__window = window

        self.set_position(gtk.WIN_POS_CENTER)

        self.__create_widgets()
Exemplo n.º 22
0
    def __create_widgets(self):
        """
        """
        self.__radius = ControlVariable(_("Ring gap"),
                                        self.radialnet.get_ring_gap,
                                        self.radialnet.set_ring_gap)

        self.__label = gtk.Label(_("Lower ring gap"))
        self.__label.set_alignment(0.0, 0.5)
        self.__adjustment = gtk.Adjustment(self.radialnet.get_min_ring_gap(),
                                           0,
                                           50,
                                           1)
        self.__spin = gtk.SpinButton(self.__adjustment)
        self.__spin.connect('value_changed', self.__change_lower)

        self.__lower_hbox = bw.BWHBox()
        self.__lower_hbox.bw_pack_start_expand_fill(self.__label)
        self.__lower_hbox.bw_pack_start_noexpand_nofill(self.__spin)

        self.bw_pack_start_noexpand_nofill(self.__radius)
        self.bw_pack_start_noexpand_nofill(self.__lower_hbox)
Exemplo n.º 23
0
    def __init__(self, window):
        """
        """
        bw.BWMainWindow.__init__(self)
        self.set_title(_("Scan"))
        self.set_default_size(DIMENSION[0], DIMENSION[1])

        self.__backend = None
        self.__window = window

        self.set_position(gtk.WIN_POS_CENTER)

        self.__create_widgets()
Exemplo n.º 24
0
    def __create_widgets(self):
        """
        """
        self.__tbox = bw.BWTable(1, 4)
        self.__tbox.bw_set_spacing(0)
        self.__vbox = bw.BWVBox()

        self.__tooltips = gtk.Tooltips()

        self.__jump_to = gtk.RadioToolButton(None, gtk.STOCK_JUMP_TO)
        self.__jump_to.set_tooltip(self.__tooltips, _("Change focus"))
        self.__jump_to.connect('toggled',
                               self.__change_pointer,
                               POINTER_JUMP_TO)

        self.__info = gtk.RadioToolButton(self.__jump_to, gtk.STOCK_INFO)
        self.__info.set_tooltip(self.__tooltips, _("Show information"))
        self.__info.connect('toggled',
                            self.__change_pointer,
                            POINTER_INFO)

        self.__group = gtk.RadioToolButton(self.__jump_to, gtk.STOCK_ADD)
        self.__group.set_tooltip(self.__tooltips, _("Group children"))
        self.__group.connect('toggled',
                             self.__change_pointer,
                             POINTER_GROUP)

        self.__region = gtk.RadioToolButton(self.__jump_to,
                                            gtk.STOCK_SELECT_COLOR)
        self.__region.set_tooltip(self.__tooltips, _("Fill region"))
        self.__region.connect('toggled',
                              self.__change_pointer,
                              POINTER_FILL)

        self.__region_color = gtk.combo_box_new_text()
        self.__region_color.append_text(_("Red"))
        self.__region_color.append_text(_("Yellow"))
        self.__region_color.append_text(_("Green"))
        self.__region_color.connect('changed', self.__change_region)
        self.__region_color.set_active(self.radialnet.get_region_color())

        self.__tbox.bw_attach_next(self.__jump_to)
        self.__tbox.bw_attach_next(self.__info)
        self.__tbox.bw_attach_next(self.__group)
        self.__tbox.bw_attach_next(self.__region)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__tbox)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__region_color)

        self.bw_add(self.__vbox)

        self.__jump_to.set_active(True)
        self.__region_color.set_no_show_all(True)
        self.__region_color.hide()
Exemplo n.º 25
0
    def __init__(self, nodes):
        """
        """
        bw.BWMainWindow.__init__(self)
        self.set_title(_("Hosts Viewer"))
        self.set_default_size(DIMENSION[0], DIMENSION[1])

        self.set_position(gtk.WIN_POS_CENTER)

        self.__nodes = nodes
        self.__view = None

        self.__create_widgets()
Exemplo n.º 26
0
    def __open_callback(self, widget=None):
        """
        """
        self.__chooser = gtk.FileChooserDialog(_("Open a Nmap XML file"),
                                               None,
                                               gtk.FILE_CHOOSER_ACTION_OPEN,
                                               FILE_CHOOSER_BUTTONS)
        self.__chooser.set_keep_above(True)

        if self.__chooser.run() == gtk.RESPONSE_OK:
            self.__window.parse_nmap_xml_file(self.__chooser.get_filename())

        self.__chooser.destroy()
Exemplo n.º 27
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox()

        self.__cartesian_radio = gtk.RadioButton(None, _("Cartesian"))
        self.__polar_radio = gtk.RadioButton(self.__cartesian_radio,
                                             _("Polar"))
        self.__cartesian_radio.connect('toggled',
                                       self.__change_system,
                                       INTERPOLATION_CARTESIAN)
        self.__polar_radio.connect('toggled',
                                   self.__change_system,
                                   INTERPOLATION_POLAR)

        self.__system_box = bw.BWHBox()
        self.__system_box.bw_pack_start_noexpand_nofill(self.__polar_radio)
        self.__system_box.bw_pack_start_noexpand_nofill(self.__cartesian_radio)

        self.__frames_box = bw.BWHBox()
        self.__frames_label = gtk.Label(_("Frames"))
        self.__frames_label.set_alignment(0.0, 0.5)
        self.__frames = gtk.Adjustment(self.radialnet.get_number_of_frames(),
                                       1,
                                       1000,
                                       1)
        self.__frames.connect('value_changed', self.__change_frames)
        self.__frames_spin = gtk.SpinButton(self.__frames)
        self.__frames_box.bw_pack_start_expand_fill(self.__frames_label)
        self.__frames_box.bw_pack_start_noexpand_nofill(self.__frames_spin)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__frames_box)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__system_box)

        self.bw_add(self.__vbox)

        gobject.timeout_add(REFRESH_RATE, self.__update_animation)
Exemplo n.º 28
0
    def __create_widgets(self):
        """
        """
        self.__tooltips = gtk.Tooltips()

        self.__nmap = gtk.RadioToolButton(None, gtk.STOCK_FIND)
        self.__nmap.set_label('Nmap')
        self.__nmap.set_is_important(True)
        self.__nmap.connect('toggled', self.__backend_callback, BACKEND_NMAP)
        self.__nmap.set_tooltip(self.__tooltips, _("Nmap as backend"))
        self.__nmap.set_active(True)

        self.__backend_callback(self.__nmap, BACKEND_NMAP)

        self.insert(self.__nmap,    0)
Exemplo n.º 29
0
    def __create_widgets(self):
        """
        """
        self.__tooltips = gtk.Tooltips()

        self.__nmap = gtk.RadioToolButton(None, gtk.STOCK_FIND)
        self.__nmap.set_label('Nmap')
        self.__nmap.set_is_important(True)
        self.__nmap.connect('toggled', self.__backend_callback, BACKEND_NMAP)
        self.__nmap.set_tooltip(self.__tooltips, _("Nmap as backend"))
        self.__nmap.set_active(True)

        self.__backend_callback(self.__nmap, BACKEND_NMAP)

        self.insert(self.__nmap, 0)
Exemplo n.º 30
0
    def __create_widgets(self):
        """
        """
        self.__tbox = bw.BWTable(1, 4)
        self.__tbox.bw_set_spacing(0)
        self.__vbox = bw.BWVBox()

        self.__tooltips = gtk.Tooltips()

        self.__jump_to = gtk.RadioToolButton(None, gtk.STOCK_JUMP_TO)
        self.__jump_to.set_tooltip(self.__tooltips, _("Change focus"))
        self.__jump_to.connect('toggled', self.__change_pointer,
                               POINTER_JUMP_TO)

        self.__info = gtk.RadioToolButton(self.__jump_to, gtk.STOCK_INFO)
        self.__info.set_tooltip(self.__tooltips, _("Show information"))
        self.__info.connect('toggled', self.__change_pointer, POINTER_INFO)

        self.__group = gtk.RadioToolButton(self.__jump_to, gtk.STOCK_ADD)
        self.__group.set_tooltip(self.__tooltips, _("Group children"))
        self.__group.connect('toggled', self.__change_pointer, POINTER_GROUP)

        self.__region = gtk.RadioToolButton(self.__jump_to,
                                            gtk.STOCK_SELECT_COLOR)
        self.__region.set_tooltip(self.__tooltips, _("Fill region"))
        self.__region.connect('toggled', self.__change_pointer, POINTER_FILL)

        self.__region_color = gtk.combo_box_new_text()
        self.__region_color.append_text(_("Red"))
        self.__region_color.append_text(_("Yellow"))
        self.__region_color.append_text(_("Green"))
        self.__region_color.connect('changed', self.__change_region)
        self.__region_color.set_active(self.radialnet.get_region_color())

        self.__tbox.bw_attach_next(self.__jump_to)
        self.__tbox.bw_attach_next(self.__info)
        self.__tbox.bw_attach_next(self.__group)
        self.__tbox.bw_attach_next(self.__region)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__tbox)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__region_color)

        self.bw_add(self.__vbox)

        self.__jump_to.set_active(True)
        self.__region_color.set_no_show_all(True)
        self.__region_color.hide()
Exemplo n.º 31
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox(spacing=0)

        self.__zoom = ControlVariable(_("Zoom"), self.radialnet.get_zoom,
                                      self.radialnet.set_zoom)

        self.__ring_gap = ControlRingGap(self.radialnet)
        self.__navigation = ControlNavigation(self.radialnet)

        self.__options = ControlOptions(self.radialnet)
        self.__options.set_border_width(0)

        self.__vbox.bw_pack_start_expand_nofill(self.__options)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__navigation)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__zoom)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__ring_gap)

        self.bw_add(self.__vbox)
Exemplo n.º 32
0
    def __draw_rotate_control(self):
        """
        """
        xc, yc = self.__center_of_widget
        r, t = self.__rotate_node.get_coordinate()
        x, y = self.__rotate_node.to_cartesian()

        # draw text
        self.context.set_font_size(10)
        self.context.move_to(xc - 49, yc - 48)
        self.context.show_text(_("Navigation"))

        width = self.context.text_extents(str(int(t)))[2]
        self.context.move_to(xc + 49 - width - 2, yc - 48)
        self.context.show_text(str(round(t, 1)))
        self.context.set_line_width(1)
        self.context.stroke()

        # draw arc
        self.context.set_dash([1,2])
        self.context.arc(xc, yc, 40, 0, 2 * math.pi)
        self.context.set_source_rgb(0.0, 0.0, 0.0)
        self.context.set_line_width(1)
        self.context.stroke()

        # draw node
        self.context.set_dash([1,0])
        self.context.arc(xc + x, yc - y, self.__rotate_radius, 0, 2 * math.pi)

        if self.__rotating == True:
            self.context.set_source_rgb(0.0, 0.0, 0.0)

        else:
            self.context.set_source_rgb(1.0, 1.0, 1.0)

        self.context.fill_preserve()
        self.context.set_source_rgb(0.0, 0.0, 0.0)
        self.context.set_line_width(1)
        self.context.stroke()

        return False
Exemplo n.º 33
0
    def __draw_rotate_control(self):
        """
        """
        xc, yc = self.__center_of_widget
        r, t = self.__rotate_node.get_coordinate()
        x, y = self.__rotate_node.to_cartesian()

        # draw text
        self.context.set_font_size(10)
        self.context.move_to(xc - 49, yc - 48)
        self.context.show_text(_("Navigation"))

        width = self.context.text_extents(str(int(t)))[2]
        self.context.move_to(xc + 49 - width - 2, yc - 48)
        self.context.show_text(str(round(t, 1)))
        self.context.set_line_width(1)
        self.context.stroke()

        # draw arc
        self.context.set_dash([1, 2])
        self.context.arc(xc, yc, 40, 0, 2 * math.pi)
        self.context.set_source_rgb(0.0, 0.0, 0.0)
        self.context.set_line_width(1)
        self.context.stroke()

        # draw node
        self.context.set_dash([1, 0])
        self.context.arc(xc + x, yc - y, self.__rotate_radius, 0, 2 * math.pi)

        if self.__rotating == True:
            self.context.set_source_rgb(0.0, 0.0, 0.0)

        else:
            self.context.set_source_rgb(1.0, 1.0, 1.0)

        self.context.fill_preserve()
        self.context.set_source_rgb(0.0, 0.0, 0.0)
        self.context.set_line_width(1)
        self.context.stroke()

        return False
Exemplo n.º 34
0
    def __create_widgets(self):
        """
        """
        self.__liststore = gtk.ListStore(gobject.TYPE_BOOLEAN,
                                         gobject.TYPE_STRING)

        self.__liststore.append([None, _("address")])     # address
        self.__liststore.append([None, _("hostname")])    # hostname
        self.__liststore.append([None, _("icon")])        # icon
        self.__liststore.append([None, _("latency")])     # latency
        self.__liststore.append([None, _("ring")])        # ring
        self.__liststore.append([None, _("region")])      # region
        self.__liststore.append([None, _("slow in/out")]) # slow in/out

        self.__cell_toggle = gtk.CellRendererToggle()
        self.__cell_toggle.set_property('activatable', True)
        self.__cell_toggle.connect('toggled',
                                   self.__change_option,
                                   self.__liststore)

        self.__column_toggle = gtk.TreeViewColumn('', self.__cell_toggle)
        self.__column_toggle.add_attribute(self.__cell_toggle, 'active', 0)

        self.__cell_text = gtk.CellRendererText()

        self.__column_text = gtk.TreeViewColumn(_("Enable"),
                                                self.__cell_text,
                                                text=1)

        self.__treeview = gtk.TreeView(self.__liststore)
        self.__treeview.set_enable_search(True)
        self.__treeview.set_search_column(1)
        self.__treeview.append_column(self.__column_toggle)
        self.__treeview.append_column(self.__column_text)

        self.add_with_viewport(self.__treeview)

        gobject.timeout_add(REFRESH_RATE, self.__update_options)
Exemplo n.º 35
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox(spacing=0)

        self.__zoom = ControlVariable(_("Zoom"),
                                      self.radialnet.get_zoom,
                                      self.radialnet.set_zoom)

        self.__ring_gap = ControlRingGap(self.radialnet)
        self.__navigation = ControlNavigation(self.radialnet)

        self.__options = ControlOptions(self.radialnet)
        self.__options.set_border_width(0)

        self.__vbox.bw_pack_start_expand_nofill(self.__options)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__navigation)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__zoom)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__ring_gap)

        self.bw_add(self.__vbox)
Exemplo n.º 36
0
    def __create_widgets(self):
        """
        """
        self.__liststore = gtk.ListStore(gobject.TYPE_BOOLEAN,
                                         gobject.TYPE_STRING)

        self.__liststore.append([None, _("address")])  # address
        self.__liststore.append([None, _("hostname")])  # hostname
        self.__liststore.append([None, _("icon")])  # icon
        self.__liststore.append([None, _("latency")])  # latency
        self.__liststore.append([None, _("ring")])  # ring
        self.__liststore.append([None, _("region")])  # region
        self.__liststore.append([None, _("slow in/out")])  # slow in/out

        self.__cell_toggle = gtk.CellRendererToggle()
        self.__cell_toggle.set_property('activatable', True)
        self.__cell_toggle.connect('toggled', self.__change_option,
                                   self.__liststore)

        self.__column_toggle = gtk.TreeViewColumn('', self.__cell_toggle)
        self.__column_toggle.add_attribute(self.__cell_toggle, 'active', 0)

        self.__cell_text = gtk.CellRendererText()

        self.__column_text = gtk.TreeViewColumn(_("Enable"),
                                                self.__cell_text,
                                                text=1)

        self.__treeview = gtk.TreeView(self.__liststore)
        self.__treeview.set_enable_search(True)
        self.__treeview.set_search_column(1)
        self.__treeview.append_column(self.__column_toggle)
        self.__treeview.append_column(self.__column_text)

        self.add_with_viewport(self.__treeview)

        gobject.timeout_add(REFRESH_RATE, self.__update_options)
Exemplo n.º 37
0
    def __create_widgets(self):
        """
        """
        self.__scan = gtk.ToolButton(gtk.STOCK_FIND)
        self.__scan.set_label(_("Scan"))
        self.__scan.set_tooltip_text(_("Open scan window"))
        self.__scan.set_is_important(True)
        self.__scan.connect('clicked', self.__scan_callback)

        self.__open = gtk.ToolButton(gtk.STOCK_OPEN)
        self.__open.set_label(_("Open"))
        self.__open.set_tooltip_text(_("Open a file"))
        self.__open.set_is_important(True)
        self.__open.connect('clicked', self.__open_callback)

        self.__tools_menu = ToolsMenu(self.radialnet)

        self.__tools_button = gtk.MenuToolButton(gtk.STOCK_PREFERENCES)
        self.__tools_button.set_label(_("Tools"))
        self.__tools_button.set_tooltip_text(_("Show tools menu"))
        self.__tools_button.set_is_important(True)
        self.__tools_button.set_menu(self.__tools_menu)
        self.__tools_button.connect('clicked', self.__tools_callback)

        self.__control = gtk.ToggleToolButton(gtk.STOCK_PROPERTIES)
        self.__control.set_label(_("Controls"))
        self.__control.set_is_important(True)
        self.__control.connect('clicked', self.__control_callback)
        self.__control.set_tooltip_text(_("Show control panel"))
        self.__control.set_active(False)

        self.__fisheye = gtk.ToggleToolButton(gtk.STOCK_ZOOM_FIT)
        self.__fisheye.set_label(_("Fisheye"))
        self.__fisheye.set_is_important(True)
        self.__fisheye.connect('clicked', self.__fisheye_callback)
        self.__fisheye.set_tooltip_text(_("Enable fisheye"))
        self.__fisheye.set_active(False)

        self.__fullscreen = gtk.ToggleToolButton(gtk.STOCK_FULLSCREEN)
        self.__fullscreen.set_label(_("Fullscreen"))
        self.__fullscreen.set_is_important(True)
        self.__fullscreen.connect('clicked', self.__fullscreen_callback)
        self.__fullscreen.set_tooltip_text(_("Toggle fullscreen"))

        self.__about = gtk.ToolButton(gtk.STOCK_ABOUT)
        self.__about.set_label(_("About"))
        self.__about.set_is_important(True)
        self.__about.connect('clicked', self.__about_callback)
        self.__about.set_tooltip_text(_("About RadialNet"))

        self.__separator = gtk.SeparatorToolItem()
        self.__expander = gtk.SeparatorToolItem()
        self.__expander.set_expand(True)
        self.__expander.set_draw(False)

        self.insert(self.__scan,         0)
        self.insert(self.__open,         1)
        self.insert(self.__separator,    2)
        self.insert(self.__tools_button, 3)
        self.insert(self.__expander,     4)
        self.insert(self.__control,      5)
        self.insert(self.__fisheye,      6)
        self.insert(self.__fullscreen,   7)
        self.insert(self.__about,        8)

        gobject.timeout_add(REFRESH_RATE, self.__update)
Exemplo n.º 38
0
    def __create_widgets(self):
        """
        """
        if self.__node.get_info('trace') == None:

            self.__trace_label = gtk.Label(NO_TRACE_TEXT)
            self.pack_start(self.__trace_label, True, True)

        else:

            # add hops
            hops = self.__node.get_info('trace')['hops']
            ttls = [int(i['ttl']) for i in hops]

            self.__cell = gtk.CellRendererText()

            self.__trace_scroll = bw.BWScrolledWindow()
            self.__trace_scroll.set_border_width(0)

            self.__trace_store = gtk.ListStore(
                gobject.TYPE_INT, gobject.TYPE_STRING, gobject.TYPE_STRING,
                gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN)

            self.__trace_treeview = gtk.TreeView(self.__trace_store)

            count = 0

            for i in range(1, max(ttls) + 1):

                if i in ttls:

                    hop = hops[count]
                    count += 1

                    self.__trace_store.append([
                        hop['ttl'], hop['rtt'], hop['ip'], hop['hostname'],
                        HOP_COLOR['known'], True
                    ])

                else:
                    self.__trace_store.append([
                        i, '',
                        _("<unknown>"), '', HOP_COLOR['unknown'], True
                    ])

            self.__trace_column = list()

            for i in range(len(TRACE_HEADER)):

                column = gtk.TreeViewColumn(TRACE_HEADER[i],
                                            self.__cell,
                                            text=i)

                self.__trace_column.append(column)

                self.__trace_column[i].set_reorderable(True)
                self.__trace_column[i].set_resizable(True)
                self.__trace_column[i].set_attributes(self.__cell,
                                                      text=i,
                                                      background=4,
                                                      editable=5)

                self.__trace_treeview.append_column(self.__trace_column[i])

            self.__trace_column[0].set_sort_column_id(0)

            self.__trace_scroll.add_with_viewport(self.__trace_treeview)

            self.__trace_info = (self.__node.get_info('trace')['port'],
                                 len(self.__node.get_info('trace')['hops']))

            self.__trace_label = bw.BWLabel(TRACE_TEXT % self.__trace_info)
            self.__trace_label.set_use_markup(True)

            self.bw_pack_start_expand_fill(self.__trace_scroll)
            self.bw_pack_start_noexpand_nofill(self.__trace_label)
Exemplo n.º 39
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox()
        self.__vbox.set_border_width(6)

        self.__cell = gtk.CellRendererText()

        self.__general_frame = bw.BWExpander(_("General information"))
        self.__sequences_frame = bw.BWExpander(_("Sequences"))
        self.__os_frame = bw.BWExpander(_("Operating System"))

        self.__sequences_frame.bw_add(gtk.Label(_("No sequence information.")))
        self.__os_frame.bw_add(gtk.Label(_("No OS information.")))

        # general information widgets
        self.__general = bw.BWTable(3, 2)

        self.__address_label = bw.BWSectionLabel(_("Address:"))
        self.__address_list = gtk.combo_box_entry_new_text()
        self.__address_list.child.set_editable(False)

        for address in self.__node.get_info('addresses'):

            params = address['type'], address['addr']
            address_text = SYSTEM_ADDRESS_TEXT % params

            if address['vendor'] != None:
                address_text += " (%s)" % address['vendor']

            self.__address_list.append_text(address_text)

        self.__address_list.set_active(0)

        self.__general.bw_attach_next(self.__address_label,
                                      yoptions=gtk.FILL,
                                      xoptions=gtk.FILL)
        self.__general.bw_attach_next(self.__address_list, yoptions=gtk.FILL)

        if self.__node.get_info('hostnames') != None:

            self.__hostname_label = bw.BWSectionLabel(_("Hostname:"))
            self.__hostname_list = gtk.combo_box_entry_new_text()
            self.__hostname_list.child.set_editable(False)

            for hostname in self.__node.get_info('hostnames'):

                params = hostname['type'], hostname['name']
                self.__hostname_list.append_text(SYSTEM_ADDRESS_TEXT % params)

            self.__hostname_list.set_active(0)

            self.__general.bw_attach_next(self.__hostname_label,
                                          yoptions=gtk.FILL,
                                          xoptions=gtk.FILL)
            self.__general.bw_attach_next(self.__hostname_list,
                                          yoptions=gtk.FILL)

        if self.__node.get_info('uptime') != None:

            self.__uptime_label = bw.BWSectionLabel(_("Last boot:"))

            seconds = self.__node.get_info('uptime')['seconds']
            lastboot = self.__node.get_info('uptime')['lastboot']

            text = _("%s (%s seconds).") % (lastboot, seconds)

            self.__uptime_value = bw.BWLabel(text)
            self.__uptime_value.set_selectable(True)
            self.__uptime_value.set_line_wrap(False)

            self.__general.bw_attach_next(self.__uptime_label,
                                          yoptions=gtk.FILL,
                                          xoptions=gtk.FILL)
            self.__general.bw_attach_next(self.__uptime_value,
                                          yoptions=gtk.FILL)

        self.__general_frame.bw_add(self.__general)
        self.__general_frame.set_expanded(True)

        # sequences information widgets
        self.__sequences = bw.BWTable(5, 3)

        sequences = self.__node.get_info('sequences')

        if len(sequences) > 0:

            self.__sequences.attach(bw.BWSectionLabel(_("Class")), 1, 2, 0, 1)
            self.__sequences.attach(bw.BWSectionLabel(_("Values")), 2, 3, 0, 1)

            self.__sequences.attach(bw.BWSectionLabel(_("TCP *")), 0, 1, 1, 2)
            self.__sequences.attach(bw.BWSectionLabel(_("IP ID")), 0, 1, 2, 3)
            self.__sequences.attach(bw.BWSectionLabel(_("TCP Timestamp")), 0,
                                    1, 3, 4)

            # tcp sequence values
            tcp = sequences['tcp']

            tcp_class = bw.BWLabel(tcp['class'])
            tcp_class.set_selectable(True)

            self.__sequences.attach(tcp_class, 1, 2, 1, 2)

            tcp_values = gtk.combo_box_entry_new_text()

            for value in tcp['values']:
                tcp_values.append_text(value)

            tcp_values.set_active(0)

            self.__sequences.attach(tcp_values, 2, 3, 1, 2)

            tcp_note = bw.BWLabel()
            tcp_note.set_selectable(True)
            tcp_note.set_line_wrap(False)
            tcp_note.set_alignment(1.0, 0.5)
            tcp_note.set_markup(TCP_SEQ_NOTE %
                                (tcp['index'], tcp['difficulty']))

            self.__sequences.attach(tcp_note, 0, 3, 4, 5)

            # ip id sequence values
            ip_id = sequences['ip_id']

            ip_id_class = bw.BWLabel(ip_id['class'])
            ip_id_class.set_selectable(True)

            self.__sequences.attach(ip_id_class, 1, 2, 2, 3)

            ip_id_values = gtk.combo_box_entry_new_text()

            for value in ip_id['values']:
                ip_id_values.append_text(value)

            ip_id_values.set_active(0)

            self.__sequences.attach(ip_id_values, 2, 3, 2, 3)

            # tcp sequence values
            tcp_ts = sequences['tcp_ts']

            tcp_ts_class = bw.BWLabel(tcp_ts['class'])
            tcp_ts_class.set_selectable(True)

            self.__sequences.attach(tcp_ts_class, 1, 2, 3, 4)

            if tcp_ts['values'] != None:

                tcp_ts_values = gtk.combo_box_entry_new_text()

                for value in tcp_ts['values']:
                    tcp_ts_values.append_text(value)

                tcp_ts_values.set_active(0)

                self.__sequences.attach(tcp_ts_values, 2, 3, 3, 4)

            self.__sequences_frame.bw_add(self.__sequences)

        # operating system information widgets
        self.__os = gtk.Notebook()
        self.__os.set_tab_pos(gtk.POS_LEFT)

        os = self.__node.get_info('os')

        if os != None:

            if os.has_key('matches'):

                self.__match_scroll = bw.BWScrolledWindow()

                self.__match_store = gtk.ListStore(gobject.TYPE_INT,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_INT,
                                                   gobject.TYPE_BOOLEAN)

                self.__match_treeview = gtk.TreeView(self.__match_store)

                for os_match in os['matches']:

                    self.__match_store.append([
                        os_match['accuracy'], os_match['name'],
                        os_match['db_line'], True
                    ])

                self.__match_column = list()

                for i in range(len(OSMATCH_HEADER)):

                    column = gtk.TreeViewColumn(OSMATCH_HEADER[i],
                                                self.__cell,
                                                text=i)

                    self.__match_column.append(column)

                    self.__match_column[i].set_reorderable(True)
                    self.__match_column[i].set_resizable(True)
                    self.__match_column[i].set_attributes(self.__cell,
                                                          text=i,
                                                          editable=3)

                    self.__match_column[i].set_sort_column_id(i)
                    self.__match_treeview.append_column(self.__match_column[i])

                self.__match_scroll.add_with_viewport(self.__match_treeview)

                self.__os.append_page(self.__match_scroll,
                                      bw.BWLabel(_("Match")))

            if os.has_key('classes'):

                self.__class_scroll = bw.BWScrolledWindow()

                self.__class_store = gtk.ListStore(gobject.TYPE_INT,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_BOOLEAN)

                self.__class_treeview = gtk.TreeView(self.__class_store)

                for os_class in os['classes']:

                    os_gen = ''

                    if os_class.has_key('os_gen'):
                        os_gen = os_class['os_gen']

                    self.__class_store.append([
                        os_class['accuracy'], os_class['vendor'],
                        os_class['type'], os_class['os_family'], os_gen, True
                    ])

                self.__class_column = list()

                for i in range(len(OSCLASS_HEADER)):

                    column = gtk.TreeViewColumn(OSCLASS_HEADER[i],
                                                self.__cell,
                                                text=i)

                    self.__class_column.append(column)

                    self.__class_column[i].set_reorderable(True)
                    self.__class_column[i].set_resizable(True)
                    self.__class_column[i].set_attributes(self.__cell,
                                                          text=i,
                                                          editable=5)

                    self.__class_column[i].set_sort_column_id(i)
                    self.__class_treeview.append_column(self.__class_column[i])

                self.__class_scroll.add_with_viewport(self.__class_treeview)

                self.__os.append_page(self.__class_scroll,
                                      bw.BWLabel(_("Class")))

            self.__fp_viewer = bw.BWTextEditor()
            self.__fp_viewer.bw_modify_font(self.__font)
            self.__fp_viewer.bw_set_editable(False)
            self.__fp_viewer.bw_set_text(os['fingerprint'])

            self.__fp_ports = bw.BWHBox()
            self.__fp_label = bw.BWSectionLabel(_("Used ports:"))

            self.__fp_ports_list = gtk.combo_box_entry_new_text()
            self.__fp_ports_list.child.set_editable(False)

            self.__fp_vbox = bw.BWVBox()

            if os.has_key('used_ports'):

                used_ports = os['used_ports']

                for port in used_ports:

                    params = port['id'], port['protocol'], port['state']
                    self.__fp_ports_list.append_text(USED_PORTS_TEXT % params)

                self.__fp_ports_list.set_active(0)

                self.__fp_ports.bw_pack_start_noexpand_nofill(self.__fp_label)
                self.__fp_ports.bw_pack_start_expand_fill(self.__fp_ports_list)

                self.__fp_vbox.bw_pack_start_noexpand_nofill(self.__fp_ports)

            self.__os.append_page(self.__fp_viewer,
                                  bw.BWLabel(_("Fingerprint")))
            self.__fp_vbox.bw_pack_start_expand_fill(self.__os)

            self.__os_frame.bw_add(self.__fp_vbox)
            self.__os_frame.set_expanded(True)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__general_frame)
        self.__vbox.bw_pack_start_expand_fill(self.__os_frame)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__sequences_frame)

        self.add_with_viewport(self.__vbox)
Exemplo n.º 40
0
    def __create_widgets(self):
        """
        """
        self.__scan = gtk.ToolButton(gtk.STOCK_FIND)
        self.__scan.set_label(_("Scan"))
        self.__scan.set_tooltip_text(_("Open scan window"))
        self.__scan.set_is_important(True)
        self.__scan.connect('clicked', self.__scan_callback)

        self.__open = gtk.ToolButton(gtk.STOCK_OPEN)
        self.__open.set_label(_("Open"))
        self.__open.set_tooltip_text(_("Open a file"))
        self.__open.set_is_important(True)
        self.__open.connect('clicked', self.__open_callback)

        self.__tools_menu = ToolsMenu(self.radialnet)

        self.__tools_button = gtk.MenuToolButton(gtk.STOCK_PREFERENCES)
        self.__tools_button.set_label(_("Tools"))
        self.__tools_button.set_tooltip_text(_("Show tools menu"))
        self.__tools_button.set_is_important(True)
        self.__tools_button.set_menu(self.__tools_menu)
        self.__tools_button.connect('clicked', self.__tools_callback)

        self.__control = gtk.ToggleToolButton(gtk.STOCK_PROPERTIES)
        self.__control.set_label(_("Controls"))
        self.__control.set_is_important(True)
        self.__control.connect('clicked', self.__control_callback)
        self.__control.set_tooltip_text(_("Show control panel"))
        self.__control.set_active(False)

        self.__fisheye = gtk.ToggleToolButton(gtk.STOCK_ZOOM_FIT)
        self.__fisheye.set_label(_("Fisheye"))
        self.__fisheye.set_is_important(True)
        self.__fisheye.connect('clicked', self.__fisheye_callback)
        self.__fisheye.set_tooltip_text(_("Enable fisheye"))
        self.__fisheye.set_active(False)

        self.__fullscreen = gtk.ToggleToolButton(gtk.STOCK_FULLSCREEN)
        self.__fullscreen.set_label(_("Fullscreen"))
        self.__fullscreen.set_is_important(True)
        self.__fullscreen.connect('clicked', self.__fullscreen_callback)
        self.__fullscreen.set_tooltip_text(_("Toggle fullscreen"))

        self.__about = gtk.ToolButton(gtk.STOCK_ABOUT)
        self.__about.set_label(_("About"))
        self.__about.set_is_important(True)
        self.__about.connect('clicked', self.__about_callback)
        self.__about.set_tooltip_text(_("About RadialNet"))

        self.__separator = gtk.SeparatorToolItem()
        self.__expander = gtk.SeparatorToolItem()
        self.__expander.set_expand(True)
        self.__expander.set_draw(False)

        self.insert(self.__scan, 0)
        self.insert(self.__open, 1)
        self.insert(self.__separator, 2)
        self.insert(self.__tools_button, 3)
        self.insert(self.__expander, 4)
        self.insert(self.__control, 5)
        self.insert(self.__fisheye, 6)
        self.insert(self.__fullscreen, 7)
        self.insert(self.__about, 8)

        gobject.timeout_add(REFRESH_RATE, self.__update)
Exemplo n.º 41
0
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

import re
import gtk
import gobject

import bestwidgets as bw

from core.I18n import _
from gui.NodeNotebook import NodeNotebook
from util.misc import ipv4_compare


HOSTS_COLORS = ['#d5ffd5', '#ffffd5', '#ffd5d5']
HOSTS_HEADER = [_("ID"), _("#"), _("Hosts")]
DIMENSION = (700, 400)
IP_RE = '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'



class HostsViewer(bw.BWMainWindow):
    """
    """
    def __init__(self, nodes):
        """
        """
        bw.BWMainWindow.__init__(self)
        self.set_title(_("Hosts Viewer"))
        self.set_default_size(DIMENSION[0], DIMENSION[1])
Exemplo n.º 42
0
    def __create_widgets(self):
        """
        """
        self.__font = pango.FontDescription('Monospace')

        self.__command = bw.BWHBox()
        self.__actions = bw.BWHBox()

        self.__label = bw.BWSectionLabel("Nmap")
        self.__entry = gtk.Entry()
        self.__entry.modify_font(self.__font)
        self.__entry.set_text(self.__cmd)
        self.__entry.connect("changed", self.set_command)
        self.__entry.connect("key-press-event", self.entry_check)

        self.__button = bw.BWStockButton(gtk.STOCK_EXECUTE, _("Scan"),
                                         gtk.ICON_SIZE_MENU)
        self.__button.connect("clicked", self.run)

        self.__load = bw.BWStockButton(gtk.STOCK_JUMP_TO, _("Load"),
                                       gtk.ICON_SIZE_MENU)
        self.__load.connect("clicked", self.load)
        self.__load.set_sensitive(False)

        self.__view = bw.BWTextView()
        self.__view.set_border_width(0)
        self.__view.bw_set_scroll(True)
        self.__view.bw_set_editable(False)
        self.__view.bw_modify_font(self.__font)
        self.__view.bw_set_wrap_mode(gtk.WRAP_WORD)

        self.__scroll = gtk.CheckButton(_("Auto-scroll"))
        self.__scroll.connect("toggled", self.__toggle_scroll)
        self.__scroll.set_active(True)

        self.create_text_tags()

        self.__colors = gtk.CheckButton(_("Highlight"))
        self.__colors.connect("toggled", self.__toggle_colors)
        self.__colors.set_active(True)

        self.__wrap = gtk.CheckButton(_("Wrap"))
        self.__wrap.connect("toggled", self.__toggle_wrap)
        self.__wrap.set_active(True)

        self.__actions.bw_pack_start_noexpand_nofill(self.__scroll)
        self.__actions.bw_pack_start_noexpand_nofill(self.__colors)
        self.__actions.bw_pack_start_noexpand_nofill(self.__wrap)
        self.__actions.bw_pack_start_expand_fill(self.__load)

        self.__statusbar = bw.BWStatusbar()

        self.__command.bw_pack_start_noexpand_nofill(self.__label)
        self.__command.bw_pack_start_expand_fill(self.__entry)
        self.__command.bw_pack_start_noexpand_nofill(self.__button)

        self.bw_pack_start_noexpand_nofill(self.__command)
        self.bw_pack_start_expand_fill(self.__view)
        self.bw_pack_start_noexpand_nofill(self.__actions)
        self.bw_pack_start_noexpand_nofill(self.__statusbar)

        self.show_all()
Exemplo n.º 43
0
    def __create_widgets(self):
        """
        """
        self.__vbox = bw.BWVBox()
        self.__vbox.set_border_width(6)

        self.__cell = gtk.CellRendererText()

        self.__general_frame = bw.BWExpander(_("General information"))
        self.__sequences_frame = bw.BWExpander(_("Sequences"))
        self.__os_frame = bw.BWExpander(_("Operating System"))

        self.__sequences_frame.bw_add(gtk.Label(_("No sequence information.")))
        self.__os_frame.bw_add(gtk.Label(_("No OS information.")))

        # general information widgets
        self.__general = bw.BWTable(3, 2)

        self.__address_label = bw.BWSectionLabel(_("Address:"))
        self.__address_list = gtk.combo_box_entry_new_text()
        self.__address_list.child.set_editable(False)

        for address in self.__node.get_info('addresses'):

            params = address['type'], address['addr']
            address_text = SYSTEM_ADDRESS_TEXT % params

            if address['vendor'] != None:
                address_text += " (%s)" % address['vendor']

            self.__address_list.append_text(address_text)

        self.__address_list.set_active(0)

        self.__general.bw_attach_next(self.__address_label,
                                      yoptions=gtk.FILL,
                                      xoptions=gtk.FILL)
        self.__general.bw_attach_next(self.__address_list, yoptions=gtk.FILL)

        if self.__node.get_info('hostnames') != None:

            self.__hostname_label = bw.BWSectionLabel(_("Hostname:"))
            self.__hostname_list = gtk.combo_box_entry_new_text()
            self.__hostname_list.child.set_editable(False)

            for hostname in self.__node.get_info('hostnames'):

                params = hostname['type'], hostname['name']
                self.__hostname_list.append_text(SYSTEM_ADDRESS_TEXT % params)

            self.__hostname_list.set_active(0)

            self.__general.bw_attach_next(self.__hostname_label,
                                          yoptions=gtk.FILL,
                                          xoptions=gtk.FILL)
            self.__general.bw_attach_next(self.__hostname_list,
                                          yoptions=gtk.FILL)

        if self.__node.get_info('uptime') != None:

            self.__uptime_label = bw.BWSectionLabel(_("Last boot:"))

            seconds = self.__node.get_info('uptime')['seconds']
            lastboot = self.__node.get_info('uptime')['lastboot']

            text = _("%s (%s seconds).") % (lastboot, seconds)

            self.__uptime_value = bw.BWLabel(text)
            self.__uptime_value.set_selectable(True)
            self.__uptime_value.set_line_wrap(False)

            self.__general.bw_attach_next(self.__uptime_label,
                                          yoptions=gtk.FILL,
                                          xoptions=gtk.FILL)
            self.__general.bw_attach_next(self.__uptime_value,
                                          yoptions=gtk.FILL)

        self.__general_frame.bw_add(self.__general)
        self.__general_frame.set_expanded(True)

        # sequences information widgets
        self.__sequences = bw.BWTable(5, 3)

        sequences = self.__node.get_info('sequences')

        if len(sequences) > 0:

            self.__sequences.attach(bw.BWSectionLabel(_("Class")), 1, 2, 0, 1)
            self.__sequences.attach(bw.BWSectionLabel(_("Values")), 2, 3, 0, 1)

            self.__sequences.attach(bw.BWSectionLabel(_("TCP *")), 0, 1, 1, 2)
            self.__sequences.attach(bw.BWSectionLabel(_("IP ID")), 0, 1, 2, 3)
            self.__sequences.attach(bw.BWSectionLabel(_("TCP Timestamp")),
                                    0,
                                    1,
                                    3,
                                    4)

            # tcp sequence values
            tcp = sequences['tcp']

            tcp_class = bw.BWLabel(tcp['class'])
            tcp_class.set_selectable(True)

            self.__sequences.attach(tcp_class, 1, 2, 1, 2)

            tcp_values = gtk.combo_box_entry_new_text()

            for value in tcp['values']:
                tcp_values.append_text(value)

            tcp_values.set_active(0)

            self.__sequences.attach(tcp_values, 2, 3, 1, 2)

            tcp_note = bw.BWLabel()
            tcp_note.set_selectable(True)
            tcp_note.set_line_wrap(False)
            tcp_note.set_alignment(1.0, 0.5)
            tcp_note.set_markup(TCP_SEQ_NOTE % (tcp['index'], tcp['difficulty']))

            self.__sequences.attach(tcp_note, 0, 3, 4, 5)

            # ip id sequence values
            ip_id = sequences['ip_id']

            ip_id_class = bw.BWLabel(ip_id['class'])
            ip_id_class.set_selectable(True)

            self.__sequences.attach(ip_id_class, 1, 2, 2, 3)

            ip_id_values = gtk.combo_box_entry_new_text()

            for value in ip_id['values']:
                ip_id_values.append_text(value)

            ip_id_values.set_active(0)

            self.__sequences.attach(ip_id_values, 2, 3, 2, 3)

            # tcp sequence values
            tcp_ts = sequences['tcp_ts']

            tcp_ts_class = bw.BWLabel(tcp_ts['class'])
            tcp_ts_class.set_selectable(True)

            self.__sequences.attach(tcp_ts_class, 1, 2, 3, 4)

            if tcp_ts['values'] != None:

                tcp_ts_values = gtk.combo_box_entry_new_text()

                for value in tcp_ts['values']:
                    tcp_ts_values.append_text(value)

                tcp_ts_values.set_active(0)

                self.__sequences.attach(tcp_ts_values, 2, 3, 3, 4)

            self.__sequences_frame.bw_add(self.__sequences)

        # operating system information widgets
        self.__os = gtk.Notebook()
        self.__os.set_tab_pos(gtk.POS_LEFT)

        os = self.__node.get_info('os')

        if os != None:

            if os.has_key('matches'):

                self.__match_scroll = bw.BWScrolledWindow()

                self.__match_store = gtk.ListStore(gobject.TYPE_INT,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_INT,
                                                   gobject.TYPE_BOOLEAN)

                self.__match_treeview = gtk.TreeView(self.__match_store)

                for os_match in os['matches']:

                    self.__match_store.append([os_match['accuracy'],
                                               os_match['name'],
                                               os_match['db_line'],
                                               True])

                self.__match_column = list()

                for i in range(len(OSMATCH_HEADER)):

                    column = gtk.TreeViewColumn(OSMATCH_HEADER[i],
                                                self.__cell,
                                                text = i)

                    self.__match_column.append(column)

                    self.__match_column[i].set_reorderable(True)
                    self.__match_column[i].set_resizable(True)
                    self.__match_column[i].set_attributes(self.__cell,
                                                          text = i,
                                                          editable = 3)

                    self.__match_column[i].set_sort_column_id(i)
                    self.__match_treeview.append_column(self.__match_column[i])

                self.__match_scroll.add_with_viewport(self.__match_treeview)

                self.__os.append_page(self.__match_scroll,
                                      bw.BWLabel(_("Match")))

            if os.has_key('classes'):

                self.__class_scroll = bw.BWScrolledWindow()

                self.__class_store = gtk.ListStore(gobject.TYPE_INT,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_STRING,
                                                   gobject.TYPE_BOOLEAN)

                self.__class_treeview = gtk.TreeView(self.__class_store)

                for os_class in os['classes']:

                    os_gen = ''

                    if os_class.has_key('os_gen'):
                        os_gen = os_class['os_gen']

                    self.__class_store.append([os_class['accuracy'],
                                               os_class['vendor'],
                                               os_class['type'],
                                               os_class['os_family'],
                                               os_gen,
                                               True])

                self.__class_column = list()

                for i in range(len(OSCLASS_HEADER)):

                    column = gtk.TreeViewColumn(OSCLASS_HEADER[i],
                                                self.__cell,
                                                text = i)

                    self.__class_column.append(column)

                    self.__class_column[i].set_reorderable(True)
                    self.__class_column[i].set_resizable(True)
                    self.__class_column[i].set_attributes(self.__cell,
                                                          text = i,
                                                          editable = 5)

                    self.__class_column[i].set_sort_column_id(i)
                    self.__class_treeview.append_column(self.__class_column[i])

                self.__class_scroll.add_with_viewport(self.__class_treeview)

                self.__os.append_page(self.__class_scroll,
                                      bw.BWLabel(_("Class")))

            self.__fp_viewer = bw.BWTextEditor()
            self.__fp_viewer.bw_modify_font(self.__font)
            self.__fp_viewer.bw_set_editable(False)
            self.__fp_viewer.bw_set_text(os['fingerprint'])

            self.__fp_ports = bw.BWHBox()
            self.__fp_label = bw.BWSectionLabel(_("Used ports:"))

            self.__fp_ports_list = gtk.combo_box_entry_new_text()
            self.__fp_ports_list.child.set_editable(False)

            self.__fp_vbox = bw.BWVBox()

            if os.has_key('used_ports'):

                used_ports = os['used_ports']

                for port in used_ports:

                    params = port['id'], port['protocol'], port['state']
                    self.__fp_ports_list.append_text(USED_PORTS_TEXT % params)

                self.__fp_ports_list.set_active(0)

                self.__fp_ports.bw_pack_start_noexpand_nofill(self.__fp_label)
                self.__fp_ports.bw_pack_start_expand_fill(self.__fp_ports_list)

                self.__fp_vbox.bw_pack_start_noexpand_nofill(self.__fp_ports)

            self.__os.append_page(self.__fp_viewer,
                                  bw.BWLabel(_("Fingerprint")))
            self.__fp_vbox.bw_pack_start_expand_fill(self.__os)

            self.__os_frame.bw_add(self.__fp_vbox)
            self.__os_frame.set_expanded(True)

        self.__vbox.bw_pack_start_noexpand_nofill(self.__general_frame)
        self.__vbox.bw_pack_start_expand_fill(self.__os_frame)
        self.__vbox.bw_pack_start_noexpand_nofill(self.__sequences_frame)

        self.add_with_viewport(self.__vbox)
Exemplo n.º 44
0
    def __create_widgets(self):
        """
        """
        self.__cell = gtk.CellRendererText()

        # texteditor widgets
        self.__texteditor = bw.BWTextEditor()
        self.__texteditor.bw_modify_font(self.__font)
        self.__texteditor.bw_set_editable(False)
        self.__texteditor.set_border_width(0)

        self.__select_combobox = gtk.combo_box_new_text()
        self.__select_combobox.connect('changed', self.__change_text_value)

        self.__viewer = bw.BWVBox(spacing=6)
        self.__viewer.set_border_width(6)

        self.__viewer.bw_pack_start_noexpand_nofill(self.__select_combobox)
        self.__viewer.bw_pack_start_expand_fill(self.__texteditor)

        self.__text = list()

        # ports information
        number_of_ports = len(self.__node.get_info('ports'))
        self.__ports_label = bw.BWLabel(_("Ports (%s)") % number_of_ports)

        self.__ports_scroll = bw.BWScrolledWindow()

        self.__ports_store = gtk.TreeStore(gobject.TYPE_INT,
                                           gobject.TYPE_STRING,
                                           gobject.TYPE_STRING,
                                           gobject.TYPE_STRING,
                                           gobject.TYPE_STRING,
                                           gobject.TYPE_STRING,
                                           gobject.TYPE_BOOLEAN)

        self.__ports_treeview = gtk.TreeView(self.__ports_store)

        for port in self.__node.get_info('ports'):

            color = SERVICE_COLORS[port['state']['state']]

            if port['service'].has_key('name'):
                service_name = port['service']['name']

            else:
                service_name = _("<unknown>")

            if port['service'].has_key('method'):
                service_method = port['service']['method']

            else:
                service_method = _("<none>")

            reference = self.__ports_store.append(None,
                                                  [port['id'],
                                                   port['protocol'],
                                                   port['state']['state'],
                                                   service_name,
                                                   service_method,
                                                   color,
                                                   True])

            for key in port['state']:
                self.__ports_store.append(reference,
                                          [port['id'],
                                           'state',
                                           key,
                                           port['state'][key],
                                           '',
                                           'white',
                                           True])

            for key in port['service']:

                if key in ['servicefp', 'extrainfo']:

                    text = _("[%d] service: %s") % (port['id'], key)

                    self.__select_combobox.append_text(text)
                    self.__text.append(port['service'][key])

                    value = _("<special field>")

                else:
                    value = port['service'][key]

                self.__ports_store.append(reference,
                                          [port['id'],
                                           'service',
                                           key,
                                           value,
                                           '',
                                           'white',
                                           True])

            for script in port['scripts']:

                text = _("[%d] script: %s") % (port['id'], script['id'])

                self.__select_combobox.append_text(text)
                self.__text.append(script['output'])

                self.__ports_store.append(reference,
                                          [port['id'],
                                           'script',
                                           'id',
                                           script['id'],
                                           _("<special field>"),
                                           'white',
                                           True])

        self.__ports_column = list()

        for i in range(len(PORTS_HEADER)):

            column = gtk.TreeViewColumn(PORTS_HEADER[i],
                                        self.__cell,
                                        text = i)

            self.__ports_column.append(column)

            self.__ports_column[i].set_reorderable(True)
            self.__ports_column[i].set_resizable(True)
            self.__ports_column[i].set_sort_column_id(i)
            self.__ports_column[i].set_attributes(self.__cell,
                                                  text = i,
                                                  background = 5,
                                                  editable = 6)

            self.__ports_treeview.append_column(self.__ports_column[i])

        self.__ports_scroll.add_with_viewport(self.__ports_treeview)

        # extraports information
        number_of_xports = 0

        self.__xports_scroll = bw.BWScrolledWindow()

        self.__xports_store = gtk.TreeStore(gobject.TYPE_INT,
                                            gobject.TYPE_STRING,
                                            gobject.TYPE_STRING,
                                            gobject.TYPE_STRING,
                                            gobject.TYPE_BOOLEAN)

        self.__xports_treeview = gtk.TreeView(self.__xports_store)

        for xports in self.__node.get_info('extraports'):

            color = SERVICE_COLORS[xports['state']]
            number_of_xports += xports['count']

            reference = self.__xports_store.append(None,
                                                   [xports['count'],
                                                    xports['state'],
                                                    ", ".join(xports['reason']),
                                                    color,
                                                    True])

            for xreason in xports['all_reason']:
                self.__xports_store.append(reference,
                                           [xreason['count'],
                                            xports['state'],
                                            xreason['reason'],
                                            'white',
                                            True])

        self.__xports_column = list()

        for i in range(len(EXTRAPORTS_HEADER)):

            column = gtk.TreeViewColumn(EXTRAPORTS_HEADER[i],
                                        self.__cell,
                                        text = i)

            self.__xports_column.append(column)

            self.__xports_column[i].set_reorderable(True)
            self.__xports_column[i].set_resizable(True)
            self.__xports_column[i].set_sort_column_id(i)
            self.__xports_column[i].set_attributes(self.__cell,
                                                   text = i,
                                                   background = 3,
                                                   editable = 4)

            self.__xports_treeview.append_column(self.__xports_column[i])

        xports_label_text = _("Extraports (%s)") % number_of_xports
        self.__xports_label = bw.BWLabel(xports_label_text)

        self.__xports_scroll.add_with_viewport(self.__xports_treeview)

        self.append_page(self.__ports_scroll, self.__ports_label)
        self.append_page(self.__xports_scroll, self.__xports_label)
        self.append_page(self.__viewer, bw.BWLabel(_("Special fields")))

        if len(self.__text) > 0:
            self.__select_combobox.set_active(0)
Exemplo n.º 45
0
    def __create_widgets(self):
        """
        """
        self.__cell = gtk.CellRendererText()

        # texteditor widgets
        self.__texteditor = bw.BWTextEditor()
        self.__texteditor.bw_modify_font(self.__font)
        self.__texteditor.bw_set_editable(False)
        self.__texteditor.set_border_width(0)

        self.__select_combobox = gtk.combo_box_new_text()
        self.__select_combobox.connect('changed', self.__change_text_value)

        self.__viewer = bw.BWVBox(spacing=6)
        self.__viewer.set_border_width(6)

        self.__viewer.bw_pack_start_noexpand_nofill(self.__select_combobox)
        self.__viewer.bw_pack_start_expand_fill(self.__texteditor)

        self.__text = list()

        # ports information
        number_of_ports = len(self.__node.get_info('ports'))
        self.__ports_label = bw.BWLabel(_("Ports (%s)") % number_of_ports)

        self.__ports_scroll = bw.BWScrolledWindow()

        self.__ports_store = gtk.TreeStore(
            gobject.TYPE_INT, gobject.TYPE_STRING, gobject.TYPE_STRING,
            gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING,
            gobject.TYPE_BOOLEAN)

        self.__ports_treeview = gtk.TreeView(self.__ports_store)

        for port in self.__node.get_info('ports'):

            color = SERVICE_COLORS[port['state']['state']]

            if port['service'].has_key('name'):
                service_name = port['service']['name']

            else:
                service_name = _("<unknown>")

            if port['service'].has_key('method'):
                service_method = port['service']['method']

            else:
                service_method = _("<none>")

            reference = self.__ports_store.append(None, [
                port['id'], port['protocol'], port['state']['state'],
                service_name, service_method, color, True
            ])

            for key in port['state']:
                self.__ports_store.append(reference, [
                    port['id'], 'state', key, port['state'][key], '', 'white',
                    True
                ])

            for key in port['service']:

                if key in ['servicefp', 'extrainfo']:

                    text = _("[%d] service: %s") % (port['id'], key)

                    self.__select_combobox.append_text(text)
                    self.__text.append(port['service'][key])

                    value = _("<special field>")

                else:
                    value = port['service'][key]

                self.__ports_store.append(
                    reference,
                    [port['id'], 'service', key, value, '', 'white', True])

            for script in port['scripts']:

                text = _("[%d] script: %s") % (port['id'], script['id'])

                self.__select_combobox.append_text(text)
                self.__text.append(script['output'])

                self.__ports_store.append(reference, [
                    port['id'], 'script', 'id', script['id'],
                    _("<special field>"), 'white', True
                ])

        self.__ports_column = list()

        for i in range(len(PORTS_HEADER)):

            column = gtk.TreeViewColumn(PORTS_HEADER[i], self.__cell, text=i)

            self.__ports_column.append(column)

            self.__ports_column[i].set_reorderable(True)
            self.__ports_column[i].set_resizable(True)
            self.__ports_column[i].set_sort_column_id(i)
            self.__ports_column[i].set_attributes(self.__cell,
                                                  text=i,
                                                  background=5,
                                                  editable=6)

            self.__ports_treeview.append_column(self.__ports_column[i])

        self.__ports_scroll.add_with_viewport(self.__ports_treeview)

        # extraports information
        number_of_xports = 0

        self.__xports_scroll = bw.BWScrolledWindow()

        self.__xports_store = gtk.TreeStore(gobject.TYPE_INT,
                                            gobject.TYPE_STRING,
                                            gobject.TYPE_STRING,
                                            gobject.TYPE_STRING,
                                            gobject.TYPE_BOOLEAN)

        self.__xports_treeview = gtk.TreeView(self.__xports_store)

        for xports in self.__node.get_info('extraports'):

            color = SERVICE_COLORS[xports['state']]
            number_of_xports += xports['count']

            reference = self.__xports_store.append(None, [
                xports['count'], xports['state'], ", ".join(xports['reason']),
                color, True
            ])

            for xreason in xports['all_reason']:
                self.__xports_store.append(reference, [
                    xreason['count'], xports['state'], xreason['reason'],
                    'white', True
                ])

        self.__xports_column = list()

        for i in range(len(EXTRAPORTS_HEADER)):

            column = gtk.TreeViewColumn(EXTRAPORTS_HEADER[i],
                                        self.__cell,
                                        text=i)

            self.__xports_column.append(column)

            self.__xports_column[i].set_reorderable(True)
            self.__xports_column[i].set_resizable(True)
            self.__xports_column[i].set_sort_column_id(i)
            self.__xports_column[i].set_attributes(self.__cell,
                                                   text=i,
                                                   background=3,
                                                   editable=4)

            self.__xports_treeview.append_column(self.__xports_column[i])

        xports_label_text = _("Extraports (%s)") % number_of_xports
        self.__xports_label = bw.BWLabel(xports_label_text)

        self.__xports_scroll.add_with_viewport(self.__xports_treeview)

        self.append_page(self.__ports_scroll, self.__ports_label)
        self.append_page(self.__xports_scroll, self.__xports_label)
        self.append_page(self.__viewer, bw.BWLabel(_("Special fields")))

        if len(self.__text) > 0:
            self.__select_combobox.set_active(0)
Exemplo n.º 46
0
    def __create_widgets(self):
        """
        """
        if self.__node.get_info('trace') == None:

            self.__trace_label = gtk.Label(NO_TRACE_TEXT)
            self.pack_start(self.__trace_label, True, True)

        else:

            # add hops
            hops = self.__node.get_info('trace')['hops']
            ttls = [int(i['ttl']) for i in hops]

            self.__cell = gtk.CellRendererText()

            self.__trace_scroll = bw.BWScrolledWindow()
            self.__trace_scroll.set_border_width(0)

            self.__trace_store = gtk.ListStore(gobject.TYPE_INT,
                                               gobject.TYPE_STRING,
                                               gobject.TYPE_STRING,
                                               gobject.TYPE_STRING,
                                               gobject.TYPE_STRING,
                                               gobject.TYPE_BOOLEAN)

            self.__trace_treeview = gtk.TreeView(self.__trace_store)

            count = 0

            for i in range(1, max(ttls) + 1):

                if i in ttls:

                    hop = hops[count]
                    count += 1

                    self.__trace_store.append([hop['ttl'],
                                               hop['rtt'],
                                               hop['ip'],
                                               hop['hostname'],
                                               HOP_COLOR['known'],
                                               True])

                else:
                    self.__trace_store.append([i,
                                               '',
                                               _("<unknown>"),
                                               '',
                                               HOP_COLOR['unknown'],
                                               True])


            self.__trace_column = list()

            for i in range(len(TRACE_HEADER)):

                column = gtk.TreeViewColumn(TRACE_HEADER[i],
                                            self.__cell,
                                            text = i)

                self.__trace_column.append(column)

                self.__trace_column[i].set_reorderable(True)
                self.__trace_column[i].set_resizable(True)
                self.__trace_column[i].set_attributes(self.__cell,
                                                      text = i,
                                                      background = 4,
                                                      editable = 5)

                self.__trace_treeview.append_column(self.__trace_column[i])

            self.__trace_column[0].set_sort_column_id(0)

            self.__trace_scroll.add_with_viewport(self.__trace_treeview)

            self.__trace_info = (self.__node.get_info('trace')['port'],
                                 len(self.__node.get_info('trace')['hops']))

            self.__trace_label = bw.BWLabel(TRACE_TEXT % self.__trace_info)
            self.__trace_label.set_use_markup(True)

            self.bw_pack_start_expand_fill(self.__trace_scroll)
            self.bw_pack_start_noexpand_nofill(self.__trace_label)
Exemplo n.º 47
0
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

import gtk
import pango
import gobject

import bestwidgets as bw

from core.I18n import _

PORTS_HEADER = [
    _("Port"), _("Protocol"),
    _("State"),
    _("Service"),
    _("Method")
]
EXTRAPORTS_HEADER = [_("Count"), _("State"), _("Reasons")]

SERVICE_COLORS = {
    'open': '#ffd5d5',
    'closed': '#d5ffd5',
    'filtered': '#ffffd5',
    'unfiltered': '#ffd5d5',
    'open|filtered': '#ffd5d5',
    'closed|filtered': '#d5ffd5'
}
Exemplo n.º 48
0
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

import gtk
import pango
import gobject

import bestwidgets as bw

from core.I18n import _


PORTS_HEADER = [_("Port"),
                _("Protocol"),
                _("State"),
                _("Service"),
                _("Method")]
EXTRAPORTS_HEADER = [_("Count"), _("State"), _("Reasons")]

SERVICE_COLORS = {'open'            : '#ffd5d5',
                  'closed'          : '#d5ffd5',
                  'filtered'        : '#ffffd5',
                  'unfiltered'      : '#ffd5d5',
                  'open|filtered'   : '#ffd5d5',
                  'closed|filtered' : '#d5ffd5'}

TRACE_HEADER = [_("TTL"), _("RTT"), _("IP"), _("Hostname")]
Exemplo n.º 49
0
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

import re
import gtk
import gobject

import bestwidgets as bw

from core.I18n import _
from gui.NodeNotebook import NodeNotebook
from util.misc import ipv4_compare

HOSTS_COLORS = ['#d5ffd5', '#ffffd5', '#ffd5d5']
HOSTS_HEADER = [_("ID"), _("#"), _("Hosts")]
DIMENSION = (700, 400)
IP_RE = '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'


class HostsViewer(bw.BWMainWindow):
    """
    """
    def __init__(self, nodes):
        """
        """
        bw.BWMainWindow.__init__(self)
        self.set_title(_("Hosts Viewer"))
        self.set_default_size(DIMENSION[0], DIMENSION[1])

        self.set_position(gtk.WIN_POS_CENTER)