| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import sys
- import subprocess as sp
- from threading import Thread
- class pingThread(Thread):
- def __init__(self, ip = '127.0.0.1'):
- Thread.__init__(self)
- self.ip = ip
- def run(self):
- result = sp.run(['ping', '-c 1', self.ip], capture_output=True)
- if (result.returncode != 0):
- self.ip = None
- def sweep_ping(address = '127.0.0.1', mask = '255.255.255.0'):
- hosts = []
- ping = []
- a1, a2, a3, a4 = address.split('.')
- m1, m2, m3, m4 = mask.split('.')
- for i1 in range(0, 256 - int(m1)):
- for i2 in range(0, 256 - int(m2)):
- for i3 in range(0, 256 - int(m3)):
- for i4 in range(0, 256 - int(m4)):
- t1 = (int(a1) + i1) % 256
- t2 = (int(a2) + i2) % 256
- t3 = (int(a3) + i3) % 256
- t4 = (int(a4) + i4) % 256
- ip = f'{t1}.{t2}.{t3}.{t4}'
- ping.append(pingThread(ip))
- ping[-1].start()
- #print (ip)
- for p in ping:
- p.join()
- if p.ip:
- hosts.append(p.ip)
- return (hosts)
- def main():
- hosts = sweep_ping(sys.argv[1], sys.argv[2])
- for h in hosts:
- print (h)
-
- if __name__ == "__main__":
- main()
|