[svn] r6337 - trunk/tools/dwscan

packagers at lists.rpmforge.net packagers at lists.rpmforge.net
Tue Jun 3 19:35:04 CEST 2008


Author: dag
Date: 2008-06-03 18:35:04 +0100 (Tue, 03 Jun 2008)
New Revision: 6337

Modified:
   trunk/tools/dwscan/dwscan
Log:
Various improvements.

Modified: trunk/tools/dwscan/dwscan
===================================================================
--- trunk/tools/dwscan/dwscan	2008-06-03 17:32:56 UTC (rev 6336)
+++ trunk/tools/dwscan/dwscan	2008-06-03 17:35:04 UTC (rev 6337)
@@ -22,7 +22,8 @@
 
 ### Scan delay in milliseconds
 #delay = 30
-delay = 200
+#delay = 200
+delay = 500
 
 ansi = {
     'default': '\033[0;0m',
@@ -69,6 +70,7 @@
     'clear': '\033[2J',
     'cleareol': '\033[K',
     'clearline': '\033[2K',
+    'cleareos': '\033[J',
 #   'save': '\033[s',
 #   'restore': '\033[u',
     'save': '\0337',
@@ -236,9 +238,16 @@
             }
 
             ### Create Access Point mapping
-            scanresults = ifobj.scan()
+            scanresults = []
+            try:
+                scanresults = ifobj.scan()
+            except:
+                pass
             for result in scanresults:
                 bssid = result.bssid
+                if not bssid:
+                    print 'Error...'
+                    continue
                 try:
                     beacon = int(re.match('.*Last beacon: ([0-9]+)ms ago', result.custom[1]).group(1))
                 except:
@@ -268,6 +277,12 @@
 #               print result.frequency.getChannel(result.frequency.getFrequency(), result.rate)
 #               print result.frequency.getFrequency()
 
+#               print
+#               print '----'
+#               print result.frequency.getFrequency()
+#               print result.range.frequencies
+#               print dir(result.range.frequencies)
+
                 aps[iface+bssid] = {
                     'active': True,
                     'avgquality': avgquality,
@@ -288,18 +303,25 @@
                 }
 
         ### Display Association information
-        print ansi['home'] + ansi['blue'] + ' %(iface)-5s  %(module)-10s  %(essid)-20s  %(ip)-15s  %(signal)4s  %(noise)4s  %(bitrate)8s  %(missed_beacon)3s  %(snr)3s  %(avgsnr)4s  %(avgsnr15)4s  %(signalname)-10s' % { 'iface': 'Iface', 'module': 'Module', 'essid': 'ESSID/Name', 'ip': 'IP address', 'signal': 'Sgnl', 'noise': 'Nois', 'snr': 'SNR', 'avgsnr': 'Avg', 'avgsnr15': 'Av15', 'bitrate': 'Cur rate', 'missed_beacon': 'Mis', 'signalname': 'Strength' }
-#       print ansi['blue'] + "%-5s  %-20s  %4s  %4s  %3s  %8s  %3s  %-10s" % ('Iface', 'ESSID/Name', 'Sgnl', 'Nois', 'SNR', 'Cur rate', 'Mis', 'Strength')
+        print ansi['home'] + ansi['blue'] + ansi['underline'] + ' %(iface)-5s  %(module)-10s  %(essid)-20s  %(ip)-15s  %(signal)4s  %(noise)4s  %(bitrate)8s  %(missed_beacon)3s  %(snr)3s  %(avgsnr)4s  %(avgsnr15)4s  %(signalname)-10s' % { 'iface': 'Iface', 'module': 'Module', 'essid': 'ESSID/Name', 'ip': 'IP address', 'signal': 'Sgnl', 'noise': 'Nois', 'snr': 'SNR', 'avgsnr': 'Avg', 'avgsnr15': 'Av15', 'bitrate': 'Cur rate', 'missed_beacon': 'Mis', 'signalname': 'Strength' } + ansi['cleareol']
+#       print ansi['blue'] + "%-5s  %-20s  %4s  %4s  %3s  %8s  %3s  %-10s" % ('Iface', 'ESSID/Name', 'Sgnl', 'Nois', 'SNR', 'Cur rate', 'Mis', 'Strength') + ansi['cleareol']
         ifaces = assaps.keys()
         ifaces.sort()
         for iface in ifaces:
             obj = assaps[iface]
-            print ansi['default'] + (' %(iface)-5s  %(module)-10s  %(essid)-20s  %(ip)-15s  %(signal)4s  %(noise)4s  %(bitrate)8s  %(missed_beacon)3s  %(snr)3s  %(avgsnr)4.1f  %(avgsnr15)4.1f  %(strength)-10s' % obj) + ansi['silver'] + ansi['cleareol']
+            color = 'default'
+            if obj['bssid'] != '00:00:00:00:00:00' and obj['ip']:
+                color = 'green'
+            elif obj['bssid'] != '00:00:00:00:00:00':
+                color = 'green'
+            elif obj['ip']:
+                color = 'red'
+            print ansi['default'] + (' %(iface)-5s  %(module)-10s  %(essid)-20s  %(ip)-15s  %(signal)4s  %(noise)4s  %(bitrate)8s  %(missed_beacon)3s  %(snr)3s  %(avgsnr)4.1f  %(avgsnr15)4.1f  %(strength)-10s' % obj) + ansi['default'] + ansi['cleareol']
 
         print ansi['clearline']
 
         ### Display Access Point information
-        print ansi['blue'] + " %-20s  %2s  %-17s  %-5s  %-8s  %8s  %3s  %4s  %4s" % ('ESSID/Name', 'Ch', 'BSSID/HW address', 'Iface', 'Max rate', 'Last bcn', 'Qua', 'Avg', 'Av15')
+        print ansi['blue'] + ansi['underline'] + " %-22s  %2s  %-17s  %-5s  %-8s  %8s  %3s  %4s  %4s " % ('ESSID/Name', 'Ch', 'BSSID/HW address', 'Iface', 'Max rate', 'Last bcn', 'Qua', 'Avg', 'Av15') + ansi['cleareol']
         for obj in sorted(aps):
             if obj['bssid'] == assaps[obj['iface']]['bssid']:
                 symbol = '+'
@@ -328,16 +350,16 @@
 
             beacon = timestr(obj['timestamp'])
 
-            print ansi[color] + symbol + ansi[ecolor] + ('%(essid)-20s ' % obj) + ansi[color] + (' %(channel)2s  %(bssid)-17s  %(iface)-5s  %(maxrate)8s ' % obj) + beacon + (' %(quality)3s  %(avgquality)4.1f  %(avgquality15)4.1f ' % obj) + ansi['silver'] + ansi['cleareol']
+            print ansi['default'] + ansi[color] + symbol + ansi[ecolor] + ('%(essid)-22s ' % obj) + ansi[color] + (' %(channel)2s  %(bssid)-17s  %(iface)-5s  %(maxrate)8s  ' % obj) + beacon + (' %(quality)3s  %(avgquality)4.1f  %(avgquality15)4.1f' % obj) + ansi['silver'] + ansi['cleareol']
 
 #           if obj['bssid'] == ifobj.getAPaddr():
 #               print '%4s  %4s  %3s  %8s  %3s' % (qual.signallevel, qual.noiselevel, qual.signallevel - qual.noiselevel, ifobj.getBitrate(), missed_beacon),
 #           else:
 #               print ansi['gray'] + '%4s  %4s  %3s  %8s  %3s' % (obj['signal'], obj['noise'], int(obj['signal']) - int(obj['noise']), '-', '-'),
-                
+
         active = len([x for x in aps.keys() if aps[x]['active']])
-        print ansi['blue'] + ' %s access points (%s active and %s inactive)' % (len(aps), active, len(aps) - active) + ansi['cleareol']
-        print ansi['clearline'],
+        print ansi['clearline']
+#        print ansi['clearline'] + ansi['default'] + ansi['blue'] + ' %s access points (%s active and %s inactive)' % (len(aps), active, len(aps) - active) + ansi['cleareos']
 
         for key in aps.keys():
             aps[key]['active'] = False



More information about the svn-commits mailing list