summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcensus/arping_users.py61
1 files changed, 40 insertions, 21 deletions
diff --git a/census/arping_users.py b/census/arping_users.py
index ec3557d4..5866c517 100755
--- a/census/arping_users.py
+++ b/census/arping_users.py
@@ -3,9 +3,13 @@ import subprocess,re,logging,sys
from arping import arpingy
from multiprocessing import Pool
+logging.basicConfig(level=logging.DEBUG)
+log = logging.getLogger("main")
DEV='eth0'
MAC_NAMES='mac_names.lst'
data = []
+my_addr = False
+my_names = {}
ret = {}
quiet=False
@@ -17,36 +21,51 @@ def get_own_addr():
return re.sub(r'.*HWaddr ([0-9A-Fa-f:]*).*inet addr:([0-9.]*).*' ,
r'\1 \2',data).split()
-def load_names(MAC_NAMES):
+def load_names(mac_file):
names = {}
- f = open(MAC_NAMES)
+ f = open(mac_file)
for l in f:
mac,name = l.split(' ',1)
names[mac] = name.replace('\n','')
f.close()
return names
+def print_config():
+ log.info("My Addr : %s" %str(my_addr))
+ log.info("MAC Names file: %s " %MAC_NAMES)
+ log.debug("Loaded names : ")
+ for mac,name in my_names.iteritems():
+ log.debug("%s => %s" %(mac,name))
+def init():
+ my_addr = get_own_addr()
+ my_names = load_names(MAC_NAMES)
-def arping_helper(dic):
- return arpingy(**dic)
+def main():
+ init()
+ print_config()
+ exit(0)
+ def arping_helper(dic):
+ return arpingy(**dic)
-for first in range(1,3):
- for second in range(255):
- data.append({'iprange':'10.42.'+str(first)+'.'+str(second),'iface':DEV})
+ for first in range(1,3):
+ for second in range(255):
+ data.append({'iprange':'10.42.'+str(first)+'.'+str(second),'iface':DEV})
-names = load_names(MAC_NAMES)
-try:
- p = Pool(20)
- ret = filter(lambda x:x , p.map(arping_helper, data))
- myip,mymac = get_own_addr()
- ret.append([mymac,myip])
- p.terminate()
-except Exception as e:
- print 'you fail '+str(e)
+ try:
+ p = Pool(20)
+ ret = filter(lambda x:x , p.map(arping_helper, data))
+ myip,mymac = get_own_addr()
+ ret.append([mymac,myip])
+ p.terminate()
+ except Exception as e:
+ print 'you fail '+str(e)
-for p in ret:
- if not quiet:
- print p[0] + " => " + p[1]
- if p[1] in names:
- print names[p[1]]+ " is online"
+ for p in ret:
+ if not quiet:
+ print p[0] + " => " + p[1]
+ if p[1] in names:
+ print names[p[1]]+ " is online"
+if __name__ == "__main__":
+ log.debug("starting arping_users")
+ main()