summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@krebs>2011-09-09 15:17:43 +0200
committerroot <root@krebs>2011-09-09 15:17:43 +0200
commit65f98dfdda97df74a1c3aec3f757d875f7da408c (patch)
tree71f520b73cfe1ceb97595638e08afcb141c909e8
parentaad509b71f5a268e5b40f2b803b6d6fd4894bfbb (diff)
//census: finish refactoring of census
i just forgot about this mess. It is refactored from the original script, using all the pythonic goodness. The arping.py command is a bit tweaked, should be faster now
-rwxr-xr-xcensus/arping.py2
-rwxr-xr-xcensus/arping_users.py28
2 files changed, 16 insertions, 14 deletions
diff --git a/census/arping.py b/census/arping.py
index 3245f1ee..3cffa6be 100755
--- a/census/arping.py
+++ b/census/arping.py
@@ -15,7 +15,7 @@ try:
"""Arping function takes IP Address or Network, returns nested mac/ip list"""
try:
conf.verb=0
- ans,unans=arping(iprange,iface=iface,timeout=1,retry=3)
+ ans,unans=arping(iprange,iface=iface,timeout=0.4,retry=1)
collection = []
for snd, rcv in ans:
diff --git a/census/arping_users.py b/census/arping_users.py
index f0df4924..f4f356bf 100755
--- a/census/arping_users.py
+++ b/census/arping_users.py
@@ -13,6 +13,7 @@ my_names = {}
ret = {}
quiet=False
+names = {}
if len(sys.argv) > 1 and sys.argv[1] == 'q':
quiet=True
def get_own_addr():
@@ -22,7 +23,6 @@ def get_own_addr():
r'\1 \2',data).split()
def load_names(mac_file):
- names = {}
f = open(mac_file)
for l in f:
mac,name = l.split(' ',1)
@@ -39,33 +39,35 @@ def init():
my_addr = get_own_addr()
my_names = load_names(MAC_NAMES)
+def arping_helper(dic):
+ log.debug("trying arpingy(%s)" %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})
+ for first in range(1,4):
+ for second in range(256):
+ data.append({'iprange':'10.42.'+str(first)+'.'+str(second),'iface':DEV})
try:
- p = Pool(20)
+ log.info("creating new Pool")
+ p = Pool(30)
ret = filter(lambda x:x , p.map(arping_helper, data))
- myip,mymac = get_own_addr()
- ret.append([mymac,myip])
+ log.info("killing it")
p.terminate()
+
except Exception as e:
print 'you fail '+str(e)
-
-
+ myip,mymac = get_own_addr()
+ ret.append([mymac,myip])
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()