diff options
| -rwxr-xr-x | people/arping_users.py | 55 | 
1 files changed, 37 insertions, 18 deletions
| diff --git a/people/arping_users.py b/people/arping_users.py index 934f9bea..f0df4924 100755 --- a/people/arping_users.py +++ b/people/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,4):    for second in range(256):      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() | 
