⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 np_tcpdisplay.py

📁 该软件根据网络数据生成NetFlow记录。NetFlow可用于网络规划、负载均衡、安全监控等
💻 PY
📖 第 1 页 / 共 2 页
字号:
			  pageheight='250m')	d.canv.place_forget()	del(d.canv)	del(d)	print 'printing %s' % (path)	############################################################################    def clear(self):	self.display.clear_canvasses()	print 'cleared'	############################################################################    def change_simp(self):	print 'change_simp val %s' % (self.simp_curr.get())	self.TCP_imps.simp_curr = self.TCP_imps.imps_dict[self.simp_curr.get()]	self.re_draw()		############################################################################    def change_cimp(self):	print 'change_cimp val %s' % (self.cimp_curr.get())	self.TCP_imps.cimp_curr = self.TCP_imps.imps_dict[self.cimp_curr.get()]	self.re_draw()	############################################################################    def make_impmenu(self, master):	self.toolbar.ibar = Frame(self.toolbar, name='bar', relief=FLAT,			 borderwidth=0, bg='gray')	self.toolbar.ibar.pack(side=LEFT)	self.simpbm = BarButton(self.toolbar.ibar, 				text='Server-Imp', bg='gray', 				relief=RAISED, padx=2).menu	self.cimpbm = BarButton(self.toolbar.ibar, 				text='Client-Imp', bg='gray', 				relief=RAISED, padx=2).menu	smenu = self.simpbm	cmenu = self.cimpbm 	self.simp_curr = StringVar(self) 	self.simp_curr.set(self.TCP_imps.simp_curr) 	self.cimp_curr = StringVar(self) 	self.cimp_curr.set(self.TCP_imps.cimp_curr)	ilist = self.TCP_imps.imps_dict.values()	for i in ilist:	    name = i.sig	    smenu.add_radiobutton(label=name, 				  command=self.change_simp, 				  variable=self.simp_curr,				  value=name, indicatoron=1, 				  selectcolor='blue')	    	    cmenu.add_radiobutton(label=name, 				 command=self.change_cimp, 				  variable=self.cimp_curr,				 value=name, indicatoron=1,				 selectcolor='blue')	    if name == 'Auto':		smenu.add_separator()		cmenu.add_separator()############################################################################    def imp_menus_add(self, imp):	    	self.simpbm.add_radiobutton(label=imp.sig, 				    command=self.change_simp, 				    variable=self.simp_curr,				    value=imp.sig, indicatoron=1, 				    selectcolor='blue')	    	self.cimpbm.add_radiobutton(label=imp.sig, 				    command=self.change_cimp, 				    variable=self.cimp_curr,				    value=imp.sig, indicatoron=1, 				    selectcolor='blue')	############################################################################    def add_imps(self, simp, cimp):	for i in [simp, cimp]:	    if i != None and not self.TCP_imps.imp_stored(i):		self.TCP_imps.store(i)		self.imp_menus_add(i)########################################################################################################################################################class ConnTransInfo(PListB):    """    A listbox subclass displaying connection/transaction info.    """    def __init__(self, master):        """        __init__(self, master)        Initialize a new instance.        """        PListB.__init__(self, master, XYSCROLL)        	self.config(bg='white')	#self.ht = canv_ht                self.expand_what = {}        self.transdata = None        self.bind("<Double-Button-1>", self.expand)                return	############################################################################    def list_trans(self, conn):        """        list_trans(self, conn)        """        	self.delete(0, END)        if self.transdata == None:            # first time - get the data            self.get_trans_data(conn)        for s in self.transdata:            #print s            self.insert(END, s[0])            try:                if self.expand_what[s[0]] == 1:                    for t in s[1]:                        self.insert(END, t[0])                        try:                           if self.expand_what[t[0]] == 1:                               for l in t[1]:                                   self.insert(END, l)                        except KeyError:                            pass            except KeyError:                pass        self.insert(END, '')        self.insert(END, '  --- End ---')        self.insert(END, '')                return	############################################################################    def get_trans_data(self, conn):        """        get_trans_data(self, conn)        """        tempdir = '/tmp'        fnm = mktemp('.%d.trans_data' % (conn.id))        #print fnm        conn.printself_with_trans(fnm=fnm)        try:            f = open(fnm, 'r')            #print 'opened', fnm        except IOError, s:            print 'Couldn\'t open file %s for read: %s' % (fnm, s)            sys.exit(1)        self.transdata = td = []        self.expand_what = {}        line = 0        in_trans = 0        in_links = 0	while 1:	    s = f.readline()	    line = line +1	    if not len(s):		break	    if s[0] =='\n':		continue            s = s[:-1]            if not in_trans:                p = string.find(s, ' transactions ')                if p != -1 and string.find(s, ' dummy)') != -1:                    in_trans += 1                    td.append(('', []))                td.append((s, []))            else:               if string.find(s, '  Transaction #') == 0:                   tt = []                   td.append(('', []))                   td.append((s, tt))                   self.expand_what[s] = 0                   in_links = 0               else:                   if not in_links:                       if string.find(s, '  References') == 0:                           lt = []                           tt.append(('', []))                           tt.append((s, lt))                           self.expand_what[s] = 0                           in_links = 1                       else:                           tt.append((s, []))                   else:                       lt.append(s)        os.remove(fnm)        return	############################################################################    def expand(self, ev):        """        expand(self, ev)        """        items = self.curselection()        try:            items = map(string.atoi, items)        except ValueError: pass        key = self.get(items[0])        try:            self.expand_what[key] = not self.expand_what[key]            self.list_trans(None)        except KeyError:            pass                return########################################################################################################################################################class ConnPktInfo(PCan):    """    Display connection packet info    """    def __init__(self, master, ht):        """        __init__(self)        Initialize a new instance.        """        PCan.__init__(self, master, XYSCROLL)        self.ht = ht        #self.pack(side=TOP, fill=BOTH, expand=1)        self.config(bg='white')        return	############################################################################    def pkt_txt(self, p, y, extend = 'false', fold = 'false', scol=None,             ccol=None, canv=None):        """        pkt_txt(self)        """        if canv == None:            canv = self        TEXT = canv.create_text        way = p.dir        flags = p.flags        if flags & TH_ACK:            ackstr = 'ack%s' % (Longstring(p.ack, width=10))        else:            ackstr = ''        if way == SERVER:            dir = '<'            if scol == None:                col = 'darkblue'            else:                col = scol        else:            dir = '>'            col = 'darkgreen'        flagstr = ''        if flags & TH_SYN:            flagstr = flagstr+'S'        if flags & TH_ACK:            flagstr = flagstr+'A'        if flags & TH_FIN:            flagstr = flagstr+'F'        if flags & TH_RST:            flagstr = flagstr+'R'        if flags & TH_PUSH:            flagstr = flagstr+'P'        if flags & TH_URG:            flagstr = flagstr+'U'        tstr = string.rjust('%.3f' % (p.tm/1000.0), 9)        str = '%3d %s %s %s +%4d %s w:%5d %-5s' % (p.indx, tstr, dir,                                       Longstring(p.seq, width=10),                                      p.len, ackstr,                                      p.window, flagstr)        if fold == 'true':            istr = ''        else:            istr = '%d ' % (p.indx)        if extend == 'true':            extstr = '%s' % (trig_str(p))            if p.prtt or p.trtt or p.delay:                if (p.trig & TRIG_RTT):                    obkt = ''                    cbkt = ''                else:                    obkt = '('                    cbkt = ')'                extstr = extstr + ' %s' % (istr)            if p.prtt:                extstr = extstr + ' %sprtt=%.3f%s' % (obkt, p.prtt/1000.0,                                                       cbkt)            if p.trtt:                extstr = extstr + ' trtt=%.3f ' % (p.trtt/1000.0)            if p.delay:                extstr = extstr + ' delay=%.3f ' % (p.delay/1000.0)            if fold == 'true' and len(extstr):                extstr = '\n\t' + extstr            str = str + extstr        #t=TEXT(0, y, fill=col, anchor=NW, text=str,  font=("helvetica", 10))        t=TEXT(0, y, fill=col, anchor=NW, text=str,  font=("-*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*"))        return canv.bbox(t)	############################################################################    def list_pkts(self, conn, ok, extend = 'false'):        """        list_pkts(self)        """        	self.delete(ALL)	plist = conn.pktlist		x = ROOT_WI	y2 = 0	for p in plist:	    x1, y1, x2, y2 = self.pkt_txt(p, y2, extend)	    x = MAX(x, x2+15)	    y = MAX(self.ht, y2+25)	if not ok:	    t = self.create_text(0, y2+25, fill='red', anchor=NW, 				 font=("helvetica", 8),		    text='Can\'t model this connection')	    bb = self.bbox(t)	    x = MAX(x, bb[2]+15)	    y = MAX(self.ht, bb[3]+25)		self.config(scrollregion=(0,0,x,y))                return

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -