diff options
author | Felix Richter <Felix.Richter@syntax-fehler.de> | 2011-05-29 15:48:47 +0200 |
---|---|---|
committer | Felix Richter <Felix.Richter@syntax-fehler.de> | 2011-05-29 15:48:47 +0200 |
commit | 30b44417f91eb100fa67a38e9c1c1f88682c92ef (patch) | |
tree | f0c6c97d76c9ac7cfe2c88bdffcaee53ff0bc3ae /people/arping_users.py | |
parent | 427bdf4e2093217f967384f785e3907930a74a21 (diff) | |
parent | 12c77cdbfa4ec48d935af3ae7cf1118e38bec6e1 (diff) |
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'people/arping_users.py')
-rwxr-xr-x | people/arping_users.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/people/arping_users.py b/people/arping_users.py new file mode 100755 index 00000000..c576e4f3 --- /dev/null +++ b/people/arping_users.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +import subprocess,re,logging,sys + +from arping import arpingy +from multiprocessing import Pool +DEV='eth0' +MAC_NAMES='mac_names.lst' +data = [] +ret = {} +verb = False + +if len(sys.argv) > 1 and sys.argv[1] == 'v': + verb = True +def get_own_addr(): + data = subprocess.Popen(['/sbin/ifconfig',DEV], + stdout=subprocess.PIPE).communicate()[0].replace('\n','') + return re.sub(r'.*HWaddr ([0-9A-Fa-f:]*).*inet addr:([0-9.]*).*' , + r'\1 \2',data).split() + +def load_names(MAC_NAMES): + names = {} + f = open(MAC_NAMES) + for l in f: + mac,name = l.split() + names[mac] = name.replace('\n','') + f.close() + return names + +def arping_helper(dic): + return arpingy(**dic) + +for first in range(4): + 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) + + + +for p in ret: + if verb: + print p[0] + " => " + p[1] + if p[1] in names: + print names[p[1]]+ " is online" + + |